Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник не срабатывает с одним словом в значение переменной (http://forum.oszone.net/showthread.php?t=294278)

termitt 22-01-2015 11:03 2459589

Батник не срабатывает с одним словом в значение переменной
 
привет всем. почему не срабатывает батник как надо? если заместо 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


Iska 22-01-2015 12:50 2459645

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) »

будет ложным.

Опишите, что Вы хотите получить, и зачем Вы делаете именно так.

termitt 22-01-2015 14:11 2459685

Iska, с помощью этого кода, я хочу получить информацию о переменной SoftwareType и узнать её значение System по принципу true or False. если правда то она существует то говорит est' system, а если нет то nety system.

Iska 23-01-2015 06:10 2460015

termitt, второй вопрос остался без ответа:
Цитата:

Цитата Iska
и зачем Вы делаете именно так. »


termitt 23-01-2015 08:09 2460050

Iska, чтобы узнать установилось По да или нет. Конечно я ставлю другие значения другое имя переменной и значение.. В принципе можно подправить этот? если да скажи как??

Iska 23-01-2015 21:11 2460399

Например, так (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.

Время: 15:07.
© OSzone.net 2001-