- 784 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 14:15:05.74 ID:Rn3o2leA.net]
- Ruby スクリプト内で、7-zip を呼び出す場合、
dest_dir に、a フォルダが作られて、その中に再帰的に階層が作られる。 ここで、aフォルダが作られず直接、tmp フォルダ以下へ展開されるオプションは、7-zipでは探せなかった zip7_exe = "C:/Program Files/7-Zip/7z.exe" archive_path = "C:/Users/Owner/Documents/test/a.zip" dest_dir = "C:/Users/Owner/Documents/tmp" # Program Files には半角空白があるので、"〜" で囲む。 # x で解凍する。-o で解凍先のフォルダを指定する puts %x("#{ zip7_exe }" x -o#{ dest_dir } #{ archive_path }) # 解凍 つまり、コマンドプロンプトでは、 "C:/Program Files/7-Zip/7z.exe" x -oC:/Users/Owner/Documents/tmp C:/Users/Owner/Documents/test/a.zip ここでの注意点は、Program Files には半角空白があるので、"〜" で囲む事と、 -oC:/ の、-oとC:/の間に、空白を入れない事 ここで、C:/Program Files/7-Zip を、Windows のユーザー環境変数パスに追加すれば、 絶対パス無しで、7z コマンドを使えるので、 7z x -oC:/〜 C:/〜 と書ける もし、xではなく、e オプションを使うと、 dest_dirにアーカイブの階層をフラットにして、すべてのフォルダ・ファイルを展開する! フォルダ構成を無視して解凍する! 限定的な使い方だが、アーカイブが再帰的なフォルダ構成ではない場合には、 これで、aフォルダが作られず直接、dest_dirフォルダへ展開できる! RAR は試していないが、a.zipの代わりに、a.rarとすれば、 拡張子から自動判別して、解凍できると思う
|

|