2015-09-08 59 views
1

我想弄清楚如何在文件夾中的每個.rar文件中添加一個文件。將一個文件添加到文件夾中的每個rar文件

比如我有:

  • rar1.rar
  • rar2.rar
  • rar3.rar

而且我想 '的readme.txt' 文件添加到每個他們。

或者如果這是不可能的,我可以提取所有的.rar文件,將它們變成文件夾,然後使用此批處理代碼來壓縮它們?

如何包含readme.txt文件?

@ECHO OFF 
cd C:\Users\userss\Desktop\compressing 
SET PATH=C:;C:\Program Files\WinRAR;C:\Windows\system32;C:\Windows;C:\Win dows\System32\Wbem;%PATH% 
FOR /f "delims=" %%d IN ('DIR /B') DO WinRAR a -m0 -ep "C:\Users\userss\Desktop\destination\%%~nxd.rar" "%%~fd" 
EXIT 

回答

1

我建議如下:

@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版本支持的交換機列表與支持的控制檯版本交換機列表略有不同。

+0

嗨如何把文件放在zip文件上? – ImNotAwesome

+0

@Mofi這不僅僅是FAT32,在NTFS中,for循環也會多次處理一些文件。我忘了。 – foxidrive

相關問題