我已经制作了简单的脚本来启动/重新启动程序,但没有做出确认重新启动的决定,因为无论我在 set/p 命令中写入什么,“deci”都是空的。
即使我不使用 ENABLEDELAYEDEXPANSION 仅与 %deci% 一起使用也是如此
@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 决定:!deci!输出中的 .
始终是 Decision .
我有 Windows 8.1 x64
最佳答案
SET /p deci = R:
^ This space is included in the variable name
所以你以一个名为 !deci !
的变量结束。更好用
SET /p "deci= R:"
关于shell - 批量设置/p 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822680/