web-dev-qa-db-ja.com

フォルダをZipするバッチジョブ(.bat)を作成するにはどうすればよいですか?

7Zipからコマンドラインツール7za.exeをダウンロードしましたが、次のスクリプトを実行する必要があります。

echo off

cls

set Zip ="C:\7za.exe"

set filename="%date%.backup.Zip"

set pathtobackup="C:\MyDocs"

%Zip% -t7z %filename% %pathtobackup%\*.doc

私の意図は、MyDocsフォルダー(サブフォルダーを含む)内のすべてのドキュメントファイルをバックアップし、それらを古いZipファイルに入れることです。その後、robocopyを使用してこのファイルをサーバーに移動しますが、現時点では、ファイルをZipするのに問題があります。

誰か手がかりがありますか?とにかく、ファイルのパスワードを追加することもできますか?

2
Jason94

構文を使用する

7z a -tzip archive.Zip -r src\*.cpp src\*.h

だからあなたの場合、それは

7z a -t7z %filename% -r %pathtobackup%\*.doc

出典: http://sevenzip.sourceforge.jp/chm/cmdline/switches/recurse.htm

5
Diaa Sami

7zをインストールすると、この作業例を7日より古いファイルの削除スクリプトで使用できます。このスクリプトの機能は、指定された「入力」フォルダーから「出力」フォルダーにファイルを圧縮することです。フォルダをZipするには、/ dを追加するか、フォルダ内のすべてのファイルをZipするために、最後の「%% X」を変更する必要があります。

REM This is a batch script to Zip files in folder or add /d to Zip folders.
REM This script is using 7z to Zip files, installation is required - "[http://www.7-Zip.org/a/7z938-x64.msi][1]"
REM Remember to point 'do' to 7z installed path 7z.exe

SET input1=D:\Backup\SampleFolder
SET input2=D:\Backup\SampleFolder2

SET output1=C:\ZipBackups\SampleFolder
SET output2=C:\ZipBackups\SampleFolder2

CD /d %input1%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output1%\%%X.Zip" "%%X"
FORFILES /P "%input1%" /M *.* /D -8 /C "cmd /c del @file"

CD /d %input2%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output2%\%%X.Zip" "%%X"
FORFILES /P "%input2%" /M *.* /D -8 /C "cmd /c del @file"
3
Zly-Zly

私はこれに対する簡単な解決策を見つけました。 1つのフォルダーに圧縮するサブフォルダーが複数あるとします。その場合は、1.7Zipソフトウェアをダウンロードしてインストールします。次に、7z.exeを、サブフォルダーを圧縮する特定のフォルダーにコピーします。

メモ帳で、以下をコピーして貼り付け、.batファイルとして保存します。 :

cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")

ダブルクリックしてファイルを実行します。

元のフォルダを削除する場合は、閉じ中括弧の前にこれを追加してください。

rd /s /q "your_Folder_path\%%f"
1
Manas Dutta