IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Coloration de vos scripts [Trucs & Astuces]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut Coloration de vos scripts
    Salut,

    je voulais partager avec vous une version améliorer de l'un de mes anciens scripts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    @Echo off & Setlocal Enableextensions
     
    IF "%~2"=="" (
       cls
       Echo.
       Echo  SYNTAXE:
       Echo. 
       Echo    %~n0 BackgroundColor+ForegroundColor chaine
       Echo.
       Color /?|Findstr  " = "
       Echo.
       Echo  ------------ EXEMPLE 1 ---------------------
       Echo.  
       Echo        CMD E:\^> %~n0 0C "Bonjour maitre"
       Echo.
       Echo  ------------ EXEMPLE 2 ---------------------
       Echo.
       Echo        CMD E:\^> Type uprising.cmd
       Echo.
       Echo        @Echo off
       Echo        call %~n0 CE "Debut"
       Echo        Echo Processus
       Echo        call %~n0 EC "Fin"
       Exit /b 3
    )
    mkdir $temp || (Exit /b 2)
    pushd $temp || (rmdir $temp & Exit /b 1)
    for /f "delims=" %%. in ('
        "%ComsPec% /K Prompt $h$h <&1"
     ') do >rtn Echo %%.
    Call:bfc %1 %2
    popd
    rmdir /S /Q $temp
    Endlocal & Exit /b 0
     
    :bfc
    >%2 (set/P=+) <&1
    findstr /a:%1 + %2 con
    type rtn
    GOTO :EOF

  2. #2
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Un peu lent, mais ça fonctionne bien, merci.
    En simplifiant, on gagnerait en rapidité, entre autres, en utilisant par exemple le répertoire %temp% directement.

  3. #3
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut minnesota et merci pour ta contribution

    Citation Envoyé par minnesota Voir le message
    En simplifiant, on gagnerait en rapidité, entre autres, en utilisant par exemple le répertoire %temp% directement.
    oui, le dossier %temp% est fait pour ça, mais c'est plus sécuriser d'opérer ainsi, car on n'est pas à l'abri d'avoir un nom de fichier identique à notre chaine à traiter,..et buggé ainsi notre programme..

  4. #4
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    re,

    On s'en moque un peu puisque le répertoire en question est censé contenir que des choses inutiles.

    Sinon, suite à ton dernier message, juste un peu avant 14 heures, j'ai essayé d'avoir un meilleur temps d'exécution, voilà ce que ça a donné :

    Ton script initial je l'ai appelé scrt1, et celui qui suit est scrt2 (scrt2.cmd) et s'inspire du tient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Echo off
    (set/p z= )<nul>"%temp%\%~2"
    pushd "%temp%"
    findstr.exe /a:%~1 . "%~2" nul
    echo. <nul
    del "%~2"
    popd

    Le script de test (test.cmd) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    @echo off
    set teinte=06
    ::choisir scrt1 ou scrt2
    set file=scrt1
    set phrase="bla bla blabla blablalbla"
    set comm=call %file% 0F
    ::set comm=echo
    ::Entête1
    echo.
    %comm%          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    %comm%          º                                                            º
    %comm%          º  MODULE DE SAUVEGARDES MULTIPLES POUR FICHIERS / DOSSIERS  º
    %comm%          º                                                            º
    %comm%          ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    title MODULE DE SAUVEGARDES
    set comm=call %file% 0F
    ::Entête2
    echo.
    %comm% "         ##############################################################"
    %comm% "         #                                                            #"
    %comm% "         #  MODULE DE SAUVEGARDES MULTIPLES POUR FICHIERS - DOSSIERS  #"
    %comm% "         #                                                            #"
    %comm% "         ##############################################################"
    echo.
    ::call %file% 0F "            MODULE DE SAUVEGARDES MULTIPLES POUR FICHIERS - DOSSIERS   "
    echo.
    echo.
    for /l %%i in (0,1,10) do call %file% %teinte% %phrase%
    pause
    On peut voir dans l'Entête1 que le cadrage est bien, mais comme on passe par des noms de fichiers ça ne fonctionne pas du fait du passage oem/ansi entre la console et l'explorateur, de plus les caractères qui ne peuvent être utilisé dans les noms de fichiers ne peuvent pas l'être également dans le message, et bien sûr c'est valable sur les deux scripts. Le reste, ça passe comme on peut le voir avec l'Entête2, mais j'ai pas approfondi plus que ça.

  5. #5
    Membre chevronné

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2003
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 333
    Billets dans le blog
    1
    Par défaut
    Master of the batch a ecnore frappé, tu sors de ces bidouilles walid, c'est incroyable, je ne sais pas ou tu les pêches.

    Personnellement j'utilisais bêtement color.exe

Discussions similaires

  1. Vos scripts shell
    Par Community Management dans le forum Shell et commandes GNU
    Réponses: 135
    Dernier message: 10/03/2024, 18h23
  2. [JavaScript] Pour débugger vos scripts JavaScript sous IE et FF
    Par FremyCompany dans le forum Contribuez
    Réponses: 4
    Dernier message: 02/11/2009, 11h59
  3. Le temps d'exécution de vos scripts perl!!
    Par djibril dans le forum Langage
    Réponses: 5
    Dernier message: 17/06/2009, 10h42
  4. Optimiser vos scripts
    Par djibril dans le forum Langage
    Réponses: 33
    Dernier message: 11/06/2009, 16h10
  5. Réponses: 4
    Dernier message: 06/09/2007, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo