Батник не срабатывает с одним словом в значение переменной
привет всем. почему не срабатывает батник как надо? если заместо 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, непонятно, что Вы хотите получить, используя:
Цитата:
Цитата termitt
Код:
for /f "skip=2 tokens=3*" %%i in ('reg query "%reglang%" /v SoftwareType') do set "SoftwareType=%%i %%j"
»
|
У меня, например, по Вашему коду выходит тупо лишний пробел в присвоении, поскольку «%%J» пустое. Поэтому и Ваше сравнение:
Цитата:
Цитата termitt
if "%SoftwareType%" == "System" (goto verification_system) »
|
будет ложным.
Опишите, что Вы хотите получить, и зачем Вы делаете именно так.
|
Iska, с помощью этого кода, я хочу получить информацию о переменной SoftwareType и узнать её значение System по принципу true or False. если правда то она существует то говорит est' system, а если нет то nety system.
|
termitt, второй вопрос остался без ответа:
Цитата:
Цитата Iska
и зачем Вы делаете именно так. »
|
|
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
|
Время: 15:07.
© OSzone.net 2001-