问题
我有2个文件夹(每个包含一个文件),我试图将文件从一个文件复制到另一个文件夹。我写的CHOICE命令工作正常;但是,在选择答案后,程序立即关闭(无论选择何种选择)。显示一条线" 1此时出乎意料"因为它正在关闭。
我的代码
ECHO. & CHOICE /C:123 /N /M "Copy? (1. Copy 2. Exit 3. No Choice)" & ECHO.
::assigns choice values for user
IF /i %errorlevel1% EQU 1 GOTO copy
IF /i %errorlevel2% EQU 2 GOTO end
IF /i %errorlevel3% EQU 3 GOTO no_choice
::based on selection, redirects to logic
:copy
ECHO.
ECHO.
ECHO You chose to COPY the files... Hit any key to START or ctrl-z to CANCEL.
PAUSE > NUL
SET src_folder=d:\batch
SET dst_folder=d:\newBatch
FOR /F "tokens=*" %%i in (batch.txt) DO (
xcopy /S/E/U "%src_folder%\%%i" "%dst_folder%")
GOTO end
::offers cancel; if continue, copies files from batch to newBatch
:end
EXIT
::ends program
:no_choice
ECHO No action has been performed...
PAUSE
EXIT
::print message; then ends program
研究
我在网上搜索过,以及这个网站的一些帖子,它帮助我解释了我现在所拥有的内容。我在这里找到了关于此主题的最新Stack Overflow帖子(Error: 1 was unexpected at this time)。我实施了" / i"解决了这篇文章中提到的问题,但提出问题的个人只是在验证ECHO语句而非选择。
问题
谢谢!
答案 0 :(得分:1)
你在ERRORLEVEL变量名称中犯了一个错误。
IF %errorlevel% EQU 1 GOTO copy
IF %errorlevel% EQU 2 GOTO end
IF %errorlevel% EQU 3 GOTO no_choice
在这种情况下,/i
选项不是必需的......