2015-04-23 54 views
2

我已经做了简单的脚本来启动/重新启动程序,但没有做出确认重新启动的决定,因为无论我在set/p命令中写入“deci”都是空的。批量设置/ p不工作

同样是即使我不使用ENABLEDELAYEDEXPANSION只是%慈%

@echo off 
cls 
ECHO Preparing to start 
tasklist /FI "IMAGENAME eq n.exe" 2>NUL | find /I /N "n.exe">NUL 
IF "%ERRORLEVEL%"=="0" (
    SETLOCAL ENABLEDELAYEDEXPANSION 
    ECHO Programm is running 
    ECHO "Do you want to restart program (y\n)" 
    SET /p deci = R: 
    ECHO Decision: !deci! . 
    IF "!deci!" EQU "y" (
     ECHO Restarting 
     taskkill /f /im "n.exe" 
     start nginx.exe 
    ) ELSE (
     ECHO Aborted, but program still running. 
    ) 
) ELSE (
    ECHO Not running. Starting 
    start n.exe 
) 

PAUSE 

命令ECHO Decision: !deci! .输出始终是Decision .

我有Windows 8.1 x64的

+0

一旦你修正了set/p deci = R:'也使用'IF/i“!deci!” EQU“y”'忽略大小写 –

回答

7
SET /p deci = R: 
     ^This space is included in the variable name 

所以你以名称为!deci !的变量结束。更好地使用

SET /p "deci= R:" 
+0

谢谢。我没有注意到这个空间。 – Levvy