Windows 批处理文件因没有明显原因而崩溃

Windows 批处理文件因没有明显原因而崩溃,windows,batch-file,Windows,Batch File,我正在制作一个简单的批处理文件,将我的文件夹备份到一个外部硬盘,我遇到了一些麻烦。我以前做过这些类型的脚本,但显然那是很久以前的事了,因为我不知道为什么下面的脚本总是崩溃。我想这和IF语句有关,但我看不出有什么错。如果你能帮我,那就太好了。请原谅所有额外的回声和东西,我只是喜欢我的脚本看起来不错 @echo off title System Backup cls echo. echo System Backup echo. set c= set /P c=Are you sure you wan

我正在制作一个简单的批处理文件,将我的文件夹备份到一个外部硬盘,我遇到了一些麻烦。我以前做过这些类型的脚本,但显然那是很久以前的事了,因为我不知道为什么下面的脚本总是崩溃。我想这和IF语句有关,但我看不出有什么错。如果你能帮我,那就太好了。请原谅所有额外的回声和东西,我只是喜欢我的脚本看起来不错

@echo off
title System Backup
cls
echo.
echo System Backup
echo.
set c=
set /P c=Are you sure you want to back up? [Y/N] 
echo %c%
pause
if /I "%c%" EQU "Y" (
    echo.
    echo Copying Documents...
    ROBOCOPY "D:\Ryan\Documents" "F:\Ryan\Documents" /mir
    echo.
    echo Copying complete.
    echo.
    pause
    exit
} else (
    echo.
    echo Cancelling backup...
    echo.
    pause
    exit
}
请尝试以下版本:

@echo off
title System Backup
cls
echo.
echo System Backup
echo.
set /P c=Are you sure you want to back up? [Y/N] 
echo %c%
if /I "%c%"=="Y" (
    echo.
    echo Copying Documents...
    ROBOCOPY "D:\Ryan\Documents" "F:\Ryan\Documents" /mir
    echo.
    echo Copying complete.
    echo.
    pause
    exit
) else (
    echo.
    echo Cancelling backup...
    echo.
    pause
    exit
)

我只是用

更改了2结尾的
}
,如果删除第一行,您应该会看到它在哪里崩溃。如果从命令行运行脚本而不是双击它,则可以读取任何错误消息。请做这两件事,让我们知道你看到了什么,以便我们能给你更好的帮助。我忘了说我已经尝试了你提到的两个建议,但都没有产生任何结果。当我以
@echo off
在CMD中运行时,它只会返回到C:\Users\Ryan\Desktop提示符。@Rrrrry123看到下面我的答案。您更改了什么?你的看起来和我的一样,哈哈。@Rrrrry123我的荣幸。你总是忽略了一些小的语法问题。如果您的语句看起来很好,那么您的变量将被检出,请查看括号、括号及其位置等。)