Кажется, работает со следующим синтаксисом. Я удалил кавычки вокруг Microsoft Windows 7 Professional. И дополнительно разделить IF / ELSE на несколько строк.
if "%%x"==Microsoft Windows 7 Professional ( goto seven ) else ( goto ten )
ПРОБЛЕМА . Когда оператор If (goto) равен «Microsoft Windows 7 Professional», он переходит к оператору else, а не к оператору if. Когда выбран первый оператор goto, выполняется второй оператор goto.
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)
Я запускаю это на удаленных компьютерах (таким образом, включение / Node).
Вот весь пакетный файл:
@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
Спасибо всем, кто может помочь.
Кажется, работает со следующим синтаксисом. Я удалил кавычки вокруг Microsoft Windows 7 Professional. И дополнительно разделить IF / ELSE на несколько строк.
if "%%x"==Microsoft Windows 7 Professional ( goto seven ) else ( goto ten )