専用サーバーで毎日実行され、ファイルを圧縮するバッチ ファイルがあります。
以下はバッチ ファイルの一部です。
%SUBDIR%7z a -tzip %fullname% %datapath%\*.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\spoolq.q >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\vblib\shared\settings.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\sssusers.d >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\*prt.cfg >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\printer.txt >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\#library\netuse.text >>%LOGFILE%
%SUBDIR%7z a -tzip %fullname% %datapath%\*.cfg >>%LOGFILE%
バッチ ファイルは必要なファイルを取得していますが、それらはすべて同じディレクトリにあり、元のディレクトリにはありません。
ファイルを抽出したときに試してみました7z x filename.zip
が、結果は変わりませんでした。
圧縮時にスイッチを指定する必要がありますか?
助けてくれてありがとう!
編集
7z に、そのファイルをそのままアーカイブに入れるように指示していることに今気づきました。今気づいたのですが、私の質問は、ファイルを圧縮するときに元のフォルダー構造を維持する方法はあるのでしょうか?
答え1
かなり弱いですが、ドライブや先頭のバックスラッシュのない相対パスを使用する必要があります。
あなたの例では、ではなく が%datapath%
必要です。"users\johnny\filespec"
"c:\users\filespec"
Cd \
7z a –tzip myzip.zip users\johnny\tmp\tmp2\TMP2.TXT
フォルダ構造を保存します。
その後、圧縮した同じフォルダーから、次のように解凍できます。
7z x myzip.zip
7z はそれをフォルダー構造とともに元に戻します。
注意してください。フォルダーは現在の場所の下に作成されるため、圧縮した同じフォルダーから解凍する必要があります。