这就是我现在所拥有的:
:saveDetector
if exist %USERPROFILE%/Desktop/savefile.txt
goto :saveDetectorName
else goto :name
:saveDetectorName
if exist %USERPROFILE%/Desktop/savename.txt
set /P c=Save detected. Would you like to load it?[Y/N]
if /I "%c%" EQU "Y" goto :saveloader
if /T "%c%" EQU "N" goto :choice
goto :saveDetectorName
:saveloader
set /p save=<savefile.txt
set /p name=<savename.txt
goto :%save%
我试图通过修复文本文件中的变量,使用多个分支以及类似的东西来修复它。然而,它一直在崩溃。谁知道为什么? (是的,文本文件只包含1行)
答案 0 :(得分:2)
if exist %USERPROFILE%/Desktop/savefile.txt
goto :saveDetectorName
else goto :name
if
语句的语法是特定的。
要执行的命令必须与同一行上的if
或至少 start 在同一行,如果该命令是{{ 1}}(带括号的行序列)
如果使用code block
子句,那么else
命令必须带括号并且右括号,if-true
关键字和else
命令的左括号必须全部在同一行,并用空格分隔。
if-false
if exist %USERPROFILE%/Desktop/savefile.txt (
goto saveDetectorName
) else (
goto name
)
中不需要冒号。
如果直接从提示符运行代码,您将收到屏幕上显示的语法错误报告。
goto
用于表示Windows中的切换。 /
用于分隔目录。有时,但不总是 \
将被翻译。