我建議如下:
@echo off
for /F "delims=" %%I in ('dir /B "%USERPROFILE%\Desktop\compressing\*.rar"') do "%ProgramFiles%\WinRAR\Rar.exe" a -ep -idq -y -m0 "%USERPROFILE%\Desktop\compressing\%%I" "%USERPROFILE%\Desktop\compressing\readme.txt"
有些人可能會利用認爲這可能也做不使用命令DIR:
@echo off
for %%I in ("%USERPROFILE%\Desktop\compressing\*.rar") do "%ProgramFiles%\WinRAR\Rar.exe" a -ep -idq -y -m0 "%%~I" "%USERPROFILE%\Desktop\compressing\readme.txt"
但這並不FAT32驅動器上工作,因爲命令FOR再次修改後再處理每個RAR歸檔導致無限循環。
NTFS文件系統驅動程序返回總是按字母順序排序的文件列表,而FAT32文件系統驅動程序返回存儲在文件分配表(FAT)中的文件列表,FAT中的排序順序隨着目錄中的每個文件修改而改變。
下面的循環將避免在FAT32驅動器無限循環:
@echo off
for %%I in ("%USERPROFILE%\Desktop\compressing\*.rar") do "%ProgramFiles%\WinRAR\Rar.exe" u -ep -idq -y -m0 "%%~I" "%USERPROFILE%\Desktop\compressing\readme.txt"
的差被使用RAR命令u
代替a
。這導致將單個文件一次添加到每個* .rar文件。當對於第二次調用Rar.exe
已更新的歸檔文件時,RAR會檢測到該文件已存在於歸檔中,並且不會再次修改RAR歸檔。因此,在每個* .rar文件由Rar.exe
(首先添加文件,第二個不會更改任何內容)處理兩次後,循環結束。
但是,使用命令DIR避免在NTFS和FAT32驅動器上多次處理每個rar文件。
這是必要的,因爲在程序文件的WinRAR的夾在文本文件Rar.txt
的頂部解釋是爲手動控制檯版本僅支持RAR壓縮文件使用的GUI WinRAR.exe
而不是控制檯Rar.exe
添加readme.txt
到ZIP檔案控制檯版本。
@echo off
for /F "delims=" %%I in ('dir /B "%USERPROFILE%\Desktop\compressing\*.zip"') do "%ProgramFiles%\WinRAR\WinRar.exe" a -ep -ibck -y -m0 "%USERPROFILE%\Desktop\compressing\%%I" "%USERPROFILE%\Desktop\compressing\readme.txt"
開關-idq
由開關-ibck
用於這意味着最小化到系統托盤後臺運行WinRAR的取代。有關GUI版本的命令和開關的詳細信息,請參閱的幫助WinRAR選項卡上內容本章命令行模式。 GUI版本支持的交換機列表與支持的控制檯版本交換機列表略有不同。
嗨如何把文件放在zip文件上? – ImNotAwesome
@Mofi這不僅僅是FAT32,在NTFS中,for循環也會多次處理一些文件。我忘了。 – foxidrive