gpt4 book ai didi

batch-file - 批处理文件和可变 USB 盘符

转载 作者:行者123 更新时间:2023-12-03 16:44:52 24 4
gpt4 key购买 nike

我正在尝试创建备份批处理文件以自动执行 Acronis True Image 和备份维护。

USB 驱动器盘符会根据我正在备份的机器和/或连接的设备数量和使用的驱动器盘符而变化...

我的批处理位于 C:\我的批处理将调用 ATI。ATI 将图像转储到 C:\然后批处理根据其卷序列号查找我的外部,如下所示:

SET SN=30BC-F5A4
SET found=

0>NUL SET /P=Searching for external drive...
TIMEOUT 3 /NOBREAK >NUL

FOR %%N IN (D E F G H I J K L M O P Q R S T U V W X Y Z) DO (
IF defined found CALL :MOVE
VOL %%N: 2>NUL | FIND "%sn%" >NUL && CALL :MOVE %%N
)

ECHO Fail^^!
TIMEOUT 3 /NOBREAK >NUL

ECHO.
ECHO Connect it now and cancel "Autoplay".
TIMEOUT 3 /NOBREAK >NUL

ECHO.
ECHO Press any key to try again...
PAUSE >NUL

CALL: EXTERNAL



:: ***MOVE BACKUP***

:MOVE

好的,那工作很好,但我现在需要的是类似的东西;

根据序列号找到正确的外部设备。 (如上)获取正确的驱动器号并将其转换为变量。找到驱动器盘符后,跳出 FOR IN DO 循环并将其设为变量。使用变量检查文件夹是否存在。如果该文件夹不存在,请创建它。如果该文件夹确实存在,请检查 MyBackup.tib 是否存在于其中。如果是这样,请删除该文件。CHDIR 或类似的返回到批处理所在的位置,(C:\) 并将新创建的备份MOVE 到外部文件夹中。

我在这个问题上连续工作了 10 个小时,但我并没有比开始时更接近于找到正确的语法/命令。

拜托,你能帮忙吗?我给你一 block cookies ,哈哈!

如果有帮助,我正在运行 Windows 7 Ultimate...

最佳答案

序列号是十六进制表示法中的数字(带有破折号,很像逗号用作十进制数字中的千位分隔符)。

WMIC volume get driveLetter, serialNumber 可用于获取所有驱动器盘符的列表及其以十进制表示的序列号。您的 30BC-F5A4 序列号等于十进制 817690020。我在命令行中使用以下命令将您的十六进制 SN 转换为十进制形式:set/a 0x30BCF5A4

因此,以下命令会将变量设置为外部驱动器的驱动器号(带冒号)。

set SN=817690020
set "extDrive="
for /f %%D in ('wmic volume get driveLetter^, serialNumber ^| find "%sn%"') do set extDrive=%%D
if not defined extDrive echo Error finding external drive & exit /b

我不明白你说的文件夹名称从何而来。我假设您有一个变量,其值以某种方式定义。我将简单地将变量命名为“文件夹”。

set folder=someFolderName
if not exist "%extDrive%\%folder%\" mkdir "%extDrive%\%folder%"

您可以使用 MOVE 命令将新创建的备份移动到外部驱动器上的文件夹,如果现有备份已经存在,则自动覆盖它。

move /y "c:\MyBackup.tib" "%extDrive%\%folder%\"

关于batch-file - 批处理文件和可变 USB 盘符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com