[英]Move file to a changeable drive location if fitted “for a in range” in XP
在Windows Embedded XP中,如何將文件移動到具有可變驅動器號范圍的USB驅動器,具體取決於它可能是驅動器E,F,G或H的機器,因此一次只能安裝一個USB驅動器,因此它只有在安裝了它之后才能移動,我可以創建文件,並且它可以在Windows 7中移動,但在Windows Embedded XP中不能移動,在XP中可用的選項有什么區別,該腳本僅在XP計算機上使用。
REM ------ Creation of the ZIP file ------
%SupervisorPath%\7-ZipPortable\App\7-Zip\7z a -tzip %BackupPath%\Backup\%FileStamp%.zip %BackupPath%\Backup\
REM ------ Move the backup file to a USB drive with File Name and Date Stamp ------
for %%A in (E F G H) do if exist %%A: (
echo Moving files to USB drive %%A:
move /y "%BackupPath%\Backup\%FileStamp%.zip" %%A: >nul && (
echo Files moved to USB drive successfully
goto :break
)
)
:break
如果文件沒有移動然后刪除文件,因為它占用了驅動器上的寶貴空間,是否還會創建一條錯誤消息?
這是我使用的解決方案。 必須已命名USB驅動器並且您知道它。 因此,假設您的USB名為“ 8GB”
如果運行以下命令:
wmic logicaldisk list brief
您將獲得驅動器列表,包括VolumeName。
使用此列表,您可以將其通過管道傳遞給“查找”命令,如下所示:
wmic logicaldisk list brief | find "8GB"
它將返回有關VolumeName 8GB的驅動器的所有信息。 它看起來像這樣。
C:\>wmic LOGICALDISK LIST BRIEF | FIND "8GB"
F: 2 3080192 8082407424 8GB
現在,使用此命令,我們可以更進一步,並將其輸出重定向到文件。 像這樣
wmic logicaldisk list brief | find "8GB" > C:\tmp\usbdriveinfo.txt
存儲了我們想要的信息之后,我們可以使用以下命令將其讀回到變量中:
set /p driveLetter=C:\tmp\usbdriveinfo.txt
現在該變量具有整個字符串,但我們只需要驅動器號,因此我們將其縮短為:
set driveLetter=%driveLetter:~-,2%
現在變量driveLetter僅包含驅動器號“ F:”
因此,如果您想要全部在一起:
wmic logicaldisk list brief | find "8GB" > C:\tmp\usbdriveinfo.txt
set /p driveLetter=C:\tmp\usbdriveinfo.txt
set driveLetter=%driveLetter:~-,2%
至於檢查move命令是否失敗。 如果任何命令移動失敗,則將變量errorlevel設置為0以外的其他值(0表示成功執行)。因此,您要做的就是在move命令后添加if語句,例如:
if %errorlevel% GTR 0 del %BackupPath%\Backup\%FileStamp%.zip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.