テキストファイルにリストされているすべてのファイルを圧縮するバックアップユーティリティを作成しています。 MS Accessをフロントエンドとして使用しており、圧縮には7-Zipを使用しています。これらは私が使用しているコマンドです:
7zG.exe a c:\Backup\backup.Zip
@c:\temp\tmpFileList.txt
すべてのファイルはパスなしで圧縮されています。各ファイルのパスをZipファイルに含める方法はありますか?その後、backup.Zip
が抽出されると、ファイルは元のフォルダー構造に復元されます。
ありがとう
この7-Zipフォーラムスレッド では、多くの人々がこの機能への要望を表明していますが、7-Zipの開発者Igorは FAQ質問 を指しています。アーカイブ内のファイルのパス?」同様の結果を達成するため。
要するに:
C:\
上のファイルのリスト、D:\
のリストなど)cd /d C:\
)C:\Foo\Bar
はFoo\Bar
になります)。7z a archive.7z @filelist
を実行します7-Zipのコマンドラインプログラムは7zまたは7zaです。利用可能なオプションについて 役立つ記事 を以下に示します。 -r(再帰)オプションはパスを格納します。
私はこれについては調べませんでしたが、腰から撮影したので、ポータブルでコマンドラインのサポートを落としました。ポータブルアプリケーションで多くのコマンドライン処理を行わない理由は、OS(ここではWindows)で実行可能ファイルを%path%包含リストに追加する必要があるためです。
コマンドラインユーティリティを使用してその要件が満たされない場合は、かなり面倒です。
7z -a。
だろう
d:\ portable\z7\z7 -a c:\ to\archive\folder *。*
すべてを入力するのは、ポータブルアプリのようなものでGUIが意味をなす理由です(アプリ)は、それ自体の場所を記憶し、そのものを処理し、実行できない場合は、接続されていないことがわかります。
ポータブルアプリに本当にそれを含めたい場合は、常にフルバージョンをインストールして必要な7z.exeを引き出し、ポータブルフォルダーに入れて、必要なDLLが含まれていることを確認してください。
シェルが接続されていることを確認した後、シェルを押すときにパスを設定する必要があります。
http://www.redfernplace.com/software-projects/patheditor/ -パス情報が大量にある場合に役立つパスエディター(ダウン)は、20以上のパス情報が読みにくい場合に役立ちます。
http://www.softpedia.com/get/System/System-Miscellaneous/Path-Editor.shtml -パスエディターの代替ネットソース
一時的な「ポータブル」ドライブのシステムパスを手動で変更することはお勧めできません。
set path =%path%; "d:\ portable\z7 \";
dos cmd.exeまたは http://sourceforge.net/p/conemu/home/Home/ を実行すると
他の回答は、他の問題をより適切に解決するために、私が試そうとはしていません。
http://www.codejacked.com/Zip-up-files-from-the-command-line/ -z7およびz7aのコマンドラインの使用に関する優れたリファレンス。
PS:ネクロには申し訳ありませんが、(たとえそれが単なる推測にすぎないとしても)理由に対するより直接的な答えが必要だと考えました。
これを試してみてください。それは私のために働いた。 7z.exe a d:\ newFileName.7z "d:\ ExistingFile.txt"
cmdを開き、7Zipアプリをインストールしている場合は、これを試してください。コマンドプロンプトでは、c:\ programs and files\7Zip\7z.exe a d:\ newFileName.7z "d:\ ExistingFile.txt"のようになります。
7-Zipバージョン9.25 alpha以降、新しい-spf
アーカイブへのドライブ文字を含む完全なファイルパスを格納するために使用できるスイッチ。
7zG.exe a -spf c:\BAckup\backup.Zip @c:\temp\tmpFileList.txt
これで問題なく動作するはずです。
7-Zipはリストファイルに相対パスを要求します。そうでない場合、ファイル名のみが保存され、重複ファイル名エラーが発生します。
リストに絶対パス名が含まれていると仮定します。
リストファイルに別のフォルダーへの相対パスがある場合、そのフォルダーから7Zを実行している必要があります。
更新:上記の別の投稿から、新しい7-Zipには上記の手順を必要としない-spfオプションがあることがわかりました。まだテストされていませんが、私の手順はこのオプションのない以前のバージョン用です。