Bonjour j'ai un gros problème et je sollicite vorte aide car je tourne en rond sur Google, alors je n'arrive pas lançé des batch qui utilise des grosses commandes "if", la fenêtre se ferme, impossible de mettre pause sous la ligne pour voir ce qui est écrit, s'il ya quelque chose d'écrit !!
Bon exemple de code est-ce qu'il marche chez vous ? C'est peut-etre un mauvais exemple car je ne sais pas s'il marche vraiment !!
Code :
- @ECHO OFF
- IF NOT "%OS%"=="Windows_NT" GOTO Syntax
- FOR /F "tokens=*" %%A IN ('VER') DO SET WinVer=%%A
- FOR %%A IN (%WinVer%) DO SET WinVer=%%A
- SET WinVer=%WinVer:]=%
- SETLOCAL ENABLEDELAYEDEXPANSION
- :: List of VER output strings found at http://en.wikipedia.org/wiki/Ver_(command)
- SET 4.=Windows NT 4
- SET 5.00.=Windows 2000
- SET 5.1.=Windows XP
- SET 5.2.=Windows Server 2003
- SET 6.0.6001=Windows Vista
- SET 6.0.6002=Windows Server 2008
- SET 6.1.=Windows 7 or Windows Server 2008 R2
- FOR /L %%A IN (4,1,6) DO (
- FOR /F "tokens=1,2 delims==" %%B IN ('SET %%A.') DO (
- IF %WinVer% GEQ %%B (
- SET WinVerTxt=%%C
- )
- )
- )
- SET Match=0
- IF NOT "%~1"=="" (
- SET Threshold=
- FOR %%A IN (NT NT4 "NT 4" 2000 2K W2K XP 2003 2K3 W2K3 Vista 2008 2K8 W2K8 7 2008R2 "2008 R2" 2K8R2 "2K8 R2" W2K8R2 "W2K8 R2" ) DO (
- IF /I "%~1"=="%%~A" (
- SET Threshold=%~1
- )
- )
- IF "!Threshold!"=="" (
- ENDLOCAL
- GOTO Syntax
- )
- FOR %%A IN (NT NT4 "NT 4" ) DO (
- IF /I "!Threshold!"=="%%~A" (
- SET Threshold=4.
- )
- )
- FOR %%A IN (2000 2K W2K) DO (
- IF /I "!Threshold!"=="%%~A" (
- SET Threshold=5.00.
- )
- )
- IF /I "!Threshold!"=="XP" (
- SET Threshold=5.1.
- )
- FOR %%A IN (2003 2K3 W2K3) DO (
- IF /I "!Threshold!"=="%%~A" (
- SET Threshold=5.2.
- )
- )
- IF /I "!Threshold!"=="Vista" (
- SET Threshold=6.0.6001
- )
- FOR %%A IN (2008 2K8 W2K8) DO (
- IF /I "!Threshold!"=="%%~A" (
- SET Threshold=6.0.6002
- )
- )
- FOR %%A IN (7 2008R2 "2008 R2" 2K8R2 "2K8 R2" W2K8R2 "W2K8 R2" ) DO (
- IF /I "!Threshold!"=="%%~A" (
- SET Threshold=6.1.
- )
- )
- IF %WinVer% LSS !Threshold! SET Match=1
- )
- ENDLOCAL & SET WinVerTxt=%WinVerTxt%& EXIT /B %Match%
- :Syntax
- ECHO WinVer2.bat, Version 1.00 for Windows NT 4 and later
- ECHO Set the Windows version in 2 environment variables WinVer and WinVertxt,
- ECHO and optionally check if it meets the specified minumum required version.
- ECHO.
- ECHO Usage: WINVER2 [minver]
- ECHO.
- ECHO Where: minver specifies the minimum required Windows version:
- ECHO "NT", "NT4", or "NT 4" for Windows NT 4;
- ECHO "2000", "2K" or "W2K" for Windows 2000;
- ECHO "XP" for Windows XP; "Vista" for Windows Vista;
- ECHO "2003", "2K3" or "W2K3" for Windows Server 2003;
- ECHO "2008", "2K8" or "W2K8" for Windows Server 2008;
- ECHO "7" for Windows 7;
- ECHO "2008R2", "2008 R2", "2K8R2", "2K8 R2", "W2K8R2"
- ECHO or "W2K8 R2" for Windows Server 2008 R2
- ECHO.
- ECHO Returns: Environment variables WinVer containing the major.minor.build,
- ECHO and WinVerTxt containing the description (e.g. "Windows XP" ).
- ECHO Return code (errorlevel) 1 if the Windows version does not
- ECHO meet the specified minimum required.
- ECHO.
- ECHO Written by Rob van der Woude
- ECHO http://www.robvanderwoude.com
- IF "%OS%"=="Windows_NT" COLOR 00
|
Donc voila, j'execute la fenêtre se ferme. Y'a t'il quelque chose qui cloche avec mes "if" ou quelque chose à savoir, parceque sur le programme que je dévelloppe, ça m'est arrivée aussi... pourtant les commandes sont correctes puisqu'elle viennent de forum, je les adaptes à mon batch, met des guillemet,... rien à faire...
Sinon ma commande: elle sert à récupérer la 5ème ligne d'un fichier texte;
Code :
- set configencrypt="%ProgramFiles(x86)%\Programme\UserInfo.txt"
- set ligne=5
- find /v /n "" %configencrypt%|find "[%ligne%]">^^&set/pbot=<^^&del ^^
- set bot=%bot:*]=%
- echo %bot%
|
Le batch se ferme en arrivant par la...pourtant sa a marché (pendant quelques temps) dans un autre batch
D'ailleurs aussi je veux savoir que quand je stock une variable dans un fichier texte il ya un espace en fin de ligne, et une ligne N°6 ??? (variable exporté à la 5ème et dernière ligne)
Je suis sous windows 7 x64. Merci à ceux qui ont prit le temps de lire !!
Message édité par benjahwest le 15-03-2011 à 02:54:27