特定のフォルダ内の各ファイルとともにアーカイブしたいテキストファイルがあります。
たとえば、フォルダにはFile1
、File2
、File3
、およびTextDoc1
があります。
File1.Zip
(File1
とTextDoc1
を含む)、File2.Zip
(File2
とTextDoc1
を含む)、およびFile3.Zip
(File3
とTextDoc1
を含む)を作成したい。
それぞれを個別に作成する代わりに、これらのアーカイブを作成するために(.batとして)実行できるバッチコマンドはありますか?私はリストファイルを使用してきましたが、ファイル名を含む各.txt
ファイルを作成する必要があります。
これは私が使用しているものです:
"C:\Program Files\WinRAR\WinRAR.exe" a -esh -m3 -mt2 -r -t "File1.Zip" @"File1.txt"
"C:\Program Files\WinRAR\WinRAR.exe" a -esh -m3 -mt2 -r -t "File2.Zip" @"File2.txt"
等.
ZipまたはRarで問題ありません。
@echo off for %%f in (*) do ( if not %%f==TextDoc1 (
(作成するコマンド _%%~nf.Zip
_含む _%%f
_および _TextDoc1
_ ) _) )
_
for %%f in (*)
は、現在のディレクトリ内の各ファイルを意味します— DO
Zipファイルを作成するコマンド(詳細は関係ありません)— TextDoc1ファイル自体を検討している場合を除きます。それをスキップしないと、TextDoc1のコピーが2つ(WinRARの動作によっては1つだけ)含まれるTextDoc1.Zipファイルが作成されます。
トリッキーなことの1つは、_%%~nf
_のファイル名部分である_%%f
_です(拡張子は削除されています)。これを使用したのは、ファイル名の例としてFile1、File2、File3を指定しましたが、File4.txt、résumé.doc、flower.jpgなどもあると思います。 File4ではなくFile4.Zip、résumé.Zip、flower.Zipと呼ばれるZipファイル。txt.Zip、履歴書.doc.Zip、および花.jpg.Zip。もちろん、schedule.mppとschedule.xlsがある場合は、問題が発生する可能性があることを意味します。
試すことができるバッチは次のとおりです。
@echo off
rem Set highest number
set /a highcount=3
rem Initialize counter to 1
set /a counter=1
:loop
start /wait "C:\Program Files\WinRAR\WinRAR.exe" a -esh -m3 -mt2 -r -t "File%counter%.Zip" "File%counter%"
start /wait "C:\Program Files\WinRAR\WinRAR.exe" a -esh -m3 -mt2 -r -t "File%counter%.Zip" "TextDoc1"
rem Increment the counter by 1
set /a counter+=1
rem If the counter is less than or equal to "highcount", then loop and do the next file.
if %counter% LEQ %highcount% goto loop
これにより、File1.Zip、File2.Zip、File3.Zipという名前の3つのZipファイルが作成され、それぞれに一致する「File#」ファイルと(同じ)「TextDoc1」が含まれます。