簡體   English   中英

如果在XP中“適合范圍”,則將文件移動到可變的驅動器位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM