Le quel faut-il choisir ?
Avantages/Inconvénients ?
Merci
Le quel faut-il choisir ?
Avantages/Inconvénients ?
Merci
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% pausel'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 echo hello call hybrid -s 3000 echo world
depuis la console
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
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)
Salut,
A propos d'un possible abandon de vbs, l'auteur indique que le langage sera encore maintenu mais ne proposera plus d'évolution.Envoyé par I'm_HERE
Cela dépend du contexte et des objectifs.Envoyé par sokai
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.
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Partager