web-dev-qa-db-ja.com

7Zipコマンドラインを使用して、選択した各ディレクトリから個別の7zファイルを作成するにはどうすればよいですか?

FOR %i IN (*.*) DO 7z.exe a "%~ni.7z" "%i"

選択した各ファイルのジョブを実行します。

しかし、私はたくさんのディレクトリを持っています(明らかにそれらの中にファイルがあります)私はパックする必要があります。

D:\ dir1、d:\ dir2、d:\ dir3、d:\ dir4があるとします。この方法で梱包するには7Zipが必要です。

e:\ dir1.7z、e:\ dir2.7z、e:\ dir3.7z、e:\ dir4.7z。

7Zipコマンドラインでそれを行うにはどうすればよいですか?

1
Grumpy ol' Bear

コマンドプロンプトから、次のようなものを使用できます。

FOR /D %i IN (d:\dir*.) DO 7z.exe a "e:\%~ni.7z" "%i"

必要なバッチファイル:

FOR /D %%i IN (d:\dir*.) DO 7z.exe a "e:\%%~ni.7z" "%%i"

ところで、次のように入力すると、FORcommandのヘルプを見つけることができます。

help for

コマンドプロンプトで。

7-Zipには、7za.exeと呼ばれる別のコマンドラインバージョンがあることに注意してください。7z.exeの代わりに使用することをお勧めします。これは、「7-Zipコマンドラインバージョン」というタイトルの別の.Zipfileダウンロードにあります。これは 7-Zipダウンロードページ にあります。

2
martineau

ディレクトリが大量にある場合、ワイルドカードを使用すると、システムの制限に達する可能性があります。

Cygwin または他のWindows用Unixツールを nxUtils として使用すると、次のように'find'Unixコマンドを使用できます。

cd <source directory>
find . -mindepth 1 -maxdepth 1 -type d -exec 7za a /<destination directory>/{}.7z {} \;

'-mindepth'は、現在のディレクトリが'find'によって返されるのを避けるために重要です。

1
jfg956