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 :

batch vs vbscript


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Par défaut batch vs vbscript
    Le quel faut-il choisir ?

    Avantages/Inconvénients ?

    Merci

  2. #2
    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,

    - Côté puissance: le moteur Wscript.exe/Cscript.exe est plus puissant que l'interpréteur Cmd.exe, mais parfois on est confronté devant des cas ou une seule ligne de code Batch est amplment suffisante devant une diziane de lignes de code VBS ou même "PERL".
    Mais VBS ça reste VBS, un langage de script qui t'apporteras un plus côté lisibilité du code, puissance,..etc


    - côté codage: On peux combiner entre ces 2 langages de script en utilisant bu Batch hybride, pour exploiter la puissance du VBS:
    exemple: (hybrid.bat)

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    @ECHO OFF & SETLOCAL
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :     QUAND:  26/10/2009
    :     QUOI: utilitaire multitâche
    :     QUI: WALID (I'm_HERE)         
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ECHO/%*|FINDSTR /RVC:"-[heldurDacoMs] .*">NUL && (
     CLS
     ECHO. 
     ECHO %~nx0 [Args] 
     ECHO.
     ECHO  Args: -d [-^|+]day       -^> %~n0 -d +3   
     ECHO        -a str_length     -^> %~n0 -a test string
     ECHO        -e exp_num        -^> %~n0 -e 6/2.5
     ECHO        -u UpperCase      -^> %~n0 -u abc
     ECHO        -l LowerCase      -^> %~n0 -l ABC
     ECHO        -r reverse        -^> %~n0 -r abc 
     ECHO        -h dec2hexa       -^> %~n0 -h 425
     ECHO        -o dec2oct        -^> %~n0 -o 8
     ECHO        -c ansi_char      -^> %~n0 -c 37
     ECHO        -M [0^|1]MonthName -^> %~n0 -M 1
     ECHO        -D [0^|1]DayName   -^> %~n0 -D 0
     ECHO        -s sleep          -^> %~n0 -s 3000
     ECHO.
     ECHO.
    GOTO:EOF
    )
    FOR /F "TOKENS=1*" %%x IN ("%*") DO (CALL:VBSFUNC %%x "%%y")
    ENDLOCAL & GOTO:EOF
    
    :VBSFUNC PARAM VALUE  
    IF [-%1]==[--d] SET .=wsh.echo eval(date%~2)
    IF [-%1]==[--a] SET .=wsh.echo eval("len(""%~2"")") 
    IF [-%1]==[--e] SET .=wsh.echo eval(%~2)
    IF [-%1]==[--u] SET .=wsh.echo eval("UCase(""%~2"")") 
    IF [-%1]==[--l] SET .=wsh.echo eval("LCase(""%~2"")") 
    IF [-%1]==[--r] SET .=wsh.echo eval("StrReverse(""%~2"")") 
    IF [-%1]==[--h] SET .=wsh.echo eval("Hex(""%~2"")") 
    IF [-%1]==[--o] SET .=wsh.echo eval("Oct(""%~2"")") 
    IF [-%1]==[--c] SET .=wsh.echo eval("chr(""%~2"")") 
    IF [-%1]==[--M] SET .=wsh.echo eval("MonthName(Month(date),%~2)")
    IF [-%1]==[--D] SET .=wsh.echo eval("WeekDayName(WeekDay(date),%~2)")
    IF [-%1]==[--s] SET .=Wsh.Sleep(%2)
    
    ECHO.>~.VBS %.%
    FOR /F "DELIMS=" %%A IN ('"Cscript/nologo ~.VBS 2>NUL"') DO SET "RESULT=%%A"
    IF DEFINED RESULT (ECHO %RESULT%) 
    DEL ~.VBS 2>NUL
    GOTO:EOF

    à mettre de préférence dans l'un des chemins du PATH exemple :\WINDOWS
    ou bien dans le répertoire en cours


    On peux l'utiliser directement dans notre fichier de commandes/console

    depuis un fichier de commandes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    set chaine=petit test RADAR
    echo %chaine%
    call hybrid -r %chaine%
    pause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo hello
    call hybrid -s 3000
    echo world
    l'appeler depuis un autre fichier et extraire les données qu'il va retourner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    for /f "delims=" %%a in ('cmd /c hybrid -d -1') do (
       echo HIER JE CROIS QUE C'ETAIT LE..%%a
       REM On peux spliter la variable %%a en utilisant le bon DELIMS/TOKENS:
       REM dd=%%a 
       REM mm=%%b 
       rem yy=%%c
    )
    pause
    depuis la console

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C:\USER>>hybrid -h 140
    8C

    - Côté perspective: petit à petit on va migrer vers PowerShell pour VBS..au contraire du Batch qui est de plus en plus enrichi de commandes externes (choice - forfiles - robocopy ..etc) et d'utilitaires tirece (les Gnu* - Nircmd - nconvert ..etc)

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par I'm_HERE
    - Côté perspective: petit à petit on va migrer vers PowerShell pour VBS..au contraire du Batch qui est de plus en plus enrichi de commandes externes (choice - forfiles - robocopy ..etc) et d'utilitaires tierce (les Gnu* - Nircmd - nconvert ..etc)
    A propos d'un possible abandon de vbs, l'auteur indique que le langage sera encore maintenu mais ne proposera plus d'évolution.
    Citation Envoyé par sokai
    Lequel faut-il choisir ?
    Cela dépend du contexte et des objectifs.
    On peut aussi combiner plusieurs langages de scripting, c'est ce que propose également PowerShell : PowerShell+cmd+vbs(COM)+C#+F#+WPF...
    PowerShell est un shell, mais aussi un framework technique.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 252
    Par défaut
    Merci pour les réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/03/2015, 17h02
  2. [Batch] Batch et VBScript pour convertir format image avec Inkscape
    Par soucou dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 11/12/2012, 11h33
  3. Appleler une fonction VBScript avec parametre dans un batch
    Par spoun95 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 10/10/2008, 17h08
  4. Vbscript pour lancer un batch.
    Par geracidede dans le forum VBScript
    Réponses: 2
    Dernier message: 29/05/2008, 14h01
  5. Réponses: 27
    Dernier message: 17/08/2006, 22h08

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