我的批量变量保护程序不断崩溃

时间:2018-03-08 12:58:44

标签: batch-file

这就是我现在所拥有的:

    :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行)

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中的切换。 /用于分隔目录。有时,但不总是 \将被翻译。