问题是动态查找 USB 并备份到它?
Issue dynamically finding a USB and backing up to it?
需要一些编码方面的帮助,我正在尝试编写一个 bat 文件,该文件在被触发时会查找 USB 驱动器,然后将目录复制到其中。如果 USB 未插入,它将等待用户插入。这是我目前的代码:
@echo off
COLOR 70
@title Finding and Backing Up
@echo Please plug in your USB.
:Find
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
)
GOTO :Find
echo I will look for your work and ensure it's backed up against the USB's Database, please wait.
:UniTest
IF EXIST "%USERPROFILE%\Documents\University" (
echo Found University work, please wait while it's backed up.
xcopy "%USERPROFILE%\Documents\University" "%USBDRV%\Backups\University" /S /D /Y /I /E > nul
echo University work located and successfully backed up.
GOTO End:
) ELSE (
echo I could not find any University folder in your Documents folder
GOTO End:
)
:exit
echo Done!
唯一的问题是,在编码方面我仍然比较迟钝,虽然它位于 'please plug in your USB' 正确的位置,但只要插入 USB,它就会继续执行脚本,但是它会将其转储到随机硬盘,通常是 C:/。我似乎无法弄清楚哪里出了问题,我知道我的运气是该死的小事。
有什么建议或解决方案吗?非常感激!
谢谢
-朱利安
你那里有一些看似随机的 %%。
改变
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
至
IF EXIST %%a:\backupusb.id SET USBDRV=%%a: && GOTO UniTest
仅供参考 在您的 goto 语句之后不需要任何 :(冒号),只需标签的文本部分。例如goto end
或 goto find
对设置 USBDRV 环境变量的方式稍作更改即可解决此问题。
更改此行:
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
对此:
IF EXIST %%a:\backupusb.id SET USBDRV=%%a:&& GOTO UniTest:
(即环境变量前不需要%%,冒号和&&之间不需要space)。
需要一些编码方面的帮助,我正在尝试编写一个 bat 文件,该文件在被触发时会查找 USB 驱动器,然后将目录复制到其中。如果 USB 未插入,它将等待用户插入。这是我目前的代码:
@echo off
COLOR 70
@title Finding and Backing Up
@echo Please plug in your USB.
:Find
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
)
GOTO :Find
echo I will look for your work and ensure it's backed up against the USB's Database, please wait.
:UniTest
IF EXIST "%USERPROFILE%\Documents\University" (
echo Found University work, please wait while it's backed up.
xcopy "%USERPROFILE%\Documents\University" "%USBDRV%\Backups\University" /S /D /Y /I /E > nul
echo University work located and successfully backed up.
GOTO End:
) ELSE (
echo I could not find any University folder in your Documents folder
GOTO End:
)
:exit
echo Done!
唯一的问题是,在编码方面我仍然比较迟钝,虽然它位于 'please plug in your USB' 正确的位置,但只要插入 USB,它就会继续执行脚本,但是它会将其转储到随机硬盘,通常是 C:/。我似乎无法弄清楚哪里出了问题,我知道我的运气是该死的小事。
有什么建议或解决方案吗?非常感激! 谢谢 -朱利安
你那里有一些看似随机的 %%。
改变
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
至
IF EXIST %%a:\backupusb.id SET USBDRV=%%a: && GOTO UniTest
仅供参考 在您的 goto 语句之后不需要任何 :(冒号),只需标签的文本部分。例如goto end
或 goto find
对设置 USBDRV 环境变量的方式稍作更改即可解决此问题。
更改此行:
IF EXIST %%a:\backupusb.id SET %%USBDRV=%%a: && GOTO UniTest:
对此:
IF EXIST %%a:\backupusb.id SET USBDRV=%%a:&& GOTO UniTest:
(即环境变量前不需要%%,冒号和&&之间不需要space)。