web-dev-qa-db-ja.com

指定されたフォルダのみを含み、特定の拡張子を除外した7-Zipを作成します。スキャンなし

特定のファイル拡張子を除外しながら、特定のフォルダー(指定されたフォルダーのみ!)を圧縮する7-Zipアーカイブを作成しようとしています。私はこれを思いついた:

"PATH-TO-7Z.EXE" a archive.7z "C:\tools\" -t7z -mx=9 -mhe=on -mtc=on -sccUTF-8 -scsUTF-8 -ssc- -ssw -y -slp -r -x!*.avi

ただし、これは、cドライブ全体をスキャンしてツール(上記の例ではC:\tools\がターゲットとして指定されています)をキーワードとして検索し、見つかったものをすべてアーカイブに追加します。

これを回避する方法はありますか?指定された拡張子を除外しながら、C:\tools\のみをアーカイブすることを意味します。

-rオプションについての何かだと思いますが、何がわかりません。

5
Amore

7-現在のディレクトリに基づくZip検索。この情報は明示的に文書化されていませんが、Addコマンドのヘルプに示されています。

cd /D c:\dir1\
7z a c:\archive3.Zip dir2\dir3\ 

アーカイブc:\ archive3.Zipのファイル名には、dir2\dir3 \プレフィックスが含まれますが、c:\ dir1 \プレフィックスは含まれません。

7-Zipを開始する前に現在のディレクトリを変更する必要があるため、コマンドは次のようになります。

pushd "C:\Tools" & C:\Path\To\7z.exe a -r -x!*.avi archive.7z * & popd

必要に応じて、その文字列を3行に分割することもできます。

また、コマンドラインに不要なオプションがたくさんあることにも注意してください。

  • -ssc-:Windowsシステムのデフォルト
  • -t7z:拡張子からアーカイブタイプを特定できない場合にのみ必要です(例:-tzipファイルを作成する場合は、.xpiを指定する必要があります)
  • -mhe=on:再確認する必要がありますが、ヘッダーの暗号化は暗号化されていないアーカイブに対して何も行わないと思います。
  • -scsUTF-8:デフォルト設定
  • -sccUTF-8:コンソール出力を読み取りたい(またはファイルにリダイレクトしたい)場合にのみ必要であり、その特定の目的のために実際にUTF-8が必要です
  • -y:Addコマンドではまったく機能しません(-eまたは-xのみ)。
  • -ssw:これが必要だと思われる場合は、VSSスナップショットの操作を検討して、読み取られているファイルの一貫したコピーを確実に取得できるようにする必要があります。動作をテストした特定のアプリケーションでこれを使用している場合は、この点を無視できます。
  • -slp:ヘルプを読み、このオプションの要件と効果の両方を理解し、環境に悪影響を及ぼさないことを確認するためにテストしたことを確認してください。
3
afrazier

はい、-rオプションは必ずしも期待どおりに機能するとは限りません。これは現在 FAQ:-rスイッチが期待どおりに機能しないのはなぜですか? :で言及されています。

-rスイッチが期待どおりに機能しないのはなぜですか?

ほとんどの場合、-rスイッチは必要ありません。 7-Zipは、-rスイッチがなくてもサブフォルダーを圧縮できます。

例1:

7z.exe a c:\ a.7z "C:\ Program Files"は、すべてのサブフォルダーを含め、 "C:\ ProgramFiles"を完全に圧縮します。

例2:

7z.exe a -r c:\ a.7z "C:\ Program Files"は、C:\のすべてのサブフォルダー(たとえば、 "C:\ WINDOWS")で "ProgramFiles"を検索して圧縮します。

拡張子が付いたファイルのみを圧縮する必要がある場合は、-rスイッチを使用できます。7za-rc:\ a.Zip c:\ dir * .txtは、フォルダーc:\ dir \のすべての* .txtファイルとそのすべてを圧縮します。サブフォルダー。

0
noelicus