2 votes

Fichier batch : la sortie des instructions IF et ELSE est inversée dans le menu script.

LE PROBLÈME : Lorsque l'instruction If (goto) est égale à "Microsoft Windows 7 Professional", elle passe à l'instruction else, et non à l'instruction if. Lorsque la première instruction goto est choisie, la deuxième instruction goto est exécutée.

for /f "skip=1 delims=" %%x in ('wmic /Node: "pc-%cn%" os get caption') do @echo.%%x
if "%%x"=="Microsoft Windows 7 Professional" (goto seven) else (goto ten)

Je l'exécute sur des ordinateurs distants (d'où l'inclusion de /Node).

Voici le fichier de lot complet :

@ECHO OFF

:: +++++++++++++++++ ENTER PC +++++++++++++++++++
cls
echo.
echo PC Tasks
echo --------
echo.
set /p "cn=Enter Computer Name Extension: "

:: +++++++++++++++++++ MENU +++++++++++++++++++++
:begin
cls
echo.
echo 1) OS Build Version
echo 2) Exit
echo.
goto option

:option
set /p op=Type option #:
if "%op%"=="1" goto test
if "%op%"=="2" goto exit

:: ++++++++++++++++++++ OPTIONS ++++++++++++++++++++++

:test
:: Check for OS
for /f "skip=1 delims=" %%x in ('wmic /Node: "pc-%cn%" os get caption') do @echo.%%x
if "%%x"=="Microsoft Windows 7 Professional" (goto seven) else (goto ten) 
echo.
pause
goto option

:seven
:: Windows 7 Build Version
systeminfo /s pc-%cn% | findstr /B /C:"OS Name" /C:"OS Version"
echo.
goto option

:ten
:: Windows 10 Build Version
psexec \\pc-%cn% cmd.exe /c Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
echo.
goto option

:exit
@exit

Merci à tous ceux qui peuvent nous aider.

2voto

NamelessOne Points 61

Il semble fonctionner avec la syntaxe suivante. J'ai supprimé les guillemets autour de Microsoft Windows 7 Professional. J'ai également réparti IF/ELSE sur plusieurs lignes.

if "%%x"==Microsoft Windows 7 Professional (
goto seven
) else (
goto ten
)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X