Показать полную графическую версию : Батник не срабатывает с одним словом в значение переменной
привет всем. почему не срабатывает батник как надо? если заместо system, пишу два слова срабытвает батник. например пишу system windows показывает est' system. а так показывает nety system. хотя он там всегда есть.
echo OFF
:check_system
set "reglang=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "skip=2 tokens=3*" %%i in ('reg query "%reglang%" /v SoftwareType') do set "SoftwareType=%%i %%j"
if "%SoftwareType%" == "System" (goto verification_system)
goto end_verification_system
:verification_system
echo est' system
pause
:end_verification_system
echo nety system
pause
termitt, непонятно, что Вы хотите получить, используя:
for /f "skip=2 tokens=3*" %%i in ('reg query "%reglang%" /v SoftwareType') do set "SoftwareType=%%i %%j"
»
У меня, например, по Вашему коду выходит тупо лишний пробел в присвоении, поскольку «%%J» пустое. Поэтому и Ваше сравнение:
if "%SoftwareType%" == "System" (goto verification_system) »
будет ложным.
Опишите, что Вы хотите получить, и зачем Вы делаете именно так.
Iska, с помощью этого кода, я хочу получить информацию о переменной SoftwareType и узнать её значение System по принципу true or False. если правда то она существует то говорит est' system, а если нет то nety system.
termitt, второй вопрос остался без ответа:
и зачем Вы делаете именно так. »
Iska, чтобы узнать установилось По да или нет. Конечно я ставлю другие значения другое имя переменной и значение.. В принципе можно подправить этот? если да скажи как??
Например, так (Windows XP SP3):
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=1,3" %%i in (
`2^>nul reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "SoftwareType" ^| find.exe /i "SoftwareType"`
) do set s%%i=%%j
if defined sSoftwareType (
if /i "%sSoftwareType%" equ "System" (
echo [SoftwareType] value is [System].
) else (
echo [SoftwareType] value is not [System].
)
) else (
echo Not found [SoftwareType] parameter in [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] subkey.
)
endlocal
exit /b 0
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.