我查看了有关此主题的当前帖子,并尝试了创建批处理文件的各种建议。这是我到目前为止所提出的。但是,批处理文件似乎只想运行Copy to Laptop,无论选择何种选项。请帮忙!
@ECHO OFF
CLS
ECHO 1.Copy to Desktop?
ECHO 2.Copy FROM Desktop to Flash Drive?
ECHO 3.Copy to Laptop?
ECHO 4.Copy FROM Laptop to Flash Drive?
ECHO.
CHOICE /C 1234 /M "Enter your Choice:"
IF ERRORLEVEL 4 GOTO Copy FROM Laptop to Flash Drive?
IF ERRORLEVEL 3 GOTO Copy to Laptop?
IF ERRORLEVEL 2 GOTO Copy FROM Desktop to Flash Drive?
IF ERRORLEVEL 1 GOTO Copy to Desktop?
:Copy to Laptop?
ECHO Copy to Laptop
xcopy H:\ "C:\Users\8888\Documents\My Games" /e /y
GOTO End
:Copy FROM Laptop to Flash Drive?
ECHO Copy FROM Laptop to Flash Drive
xcopy "C:\Users\8888\Documents\My Games" H:\ /e /y
GOTO End
:Copy to Desktop?
ECHO Copy to Desktop
xcopy H:\ "C:\Users\****\Documents\My Games" /e /y
GOTO End
:Copy FROM Desktop to Flash Drive?
ECHO Copy FROM Desktop to Flash Drive
xcopy "C:\Users\****\Documents\My Games" H:\ /e /y
GOTO End
:End
答案 0 :(得分:1)
你遇到的问题是所有标签都只使用第一个单词,在所有情况下都是COPY
(第一个空格似乎是停止查看标签的位置)。
这对我来说非常好。请注意,我已经通过删除空格和最后的:Label
将所有?
名称更改为仍然有意义的名称。 (我还删除了xcopy
行,因为他们没有必要演示解决方案。)
@ECHO OFF
CLS
ECHO 1.Copy to Desktop?
ECHO 2.Copy FROM Desktop to Flash Drive?
ECHO 3.Copy to Laptop?
ECHO 4.Copy FROM Laptop to Flash Drive?
ECHO.
CHOICE /C 1234 /M "Enter your Choice:"
IF ERRORLEVEL 4 GOTO LapTopToFlashDrive
IF ERRORLEVEL 3 GOTO CopyToLaptop
IF ERRORLEVEL 2 GOTO DesktopToFlashDrive
IF ERRORLEVEL 1 GOTO CopyToDesktop
:CopyToLaptop
ECHO Copy to Laptop
GOTO End
:LaptopToFlashDrive
ECHO Copy FROM Laptop to Flash Drive
GOTO End
:CopyToDesktop
ECHO Copy to Desktop
GOTO End
:DesktopToFlashDrive
ECHO Copy FROM Desktop to Flash Drive
GOTO End
:End
Pause
答案 1 :(得分:1)
GOTO语句中不允许使用空格。
所以你所有的GOTO都转到第一个:Copy
。其余的“到桌面?”等等被忽略了。