バッチファイルで何とか出来ないかと思ったのですが、私の頭では無理そうです…。
例 d:\zip\ に hoge01.zipとか適当な名前のZIPが数百有り、そのうちいくつかはパスワードがかかっている。
パスワードがかかっている物を楽に一括削除したい。 当方Windowsを使っております。
何か良い方法がありましたら、教えてください。
1.下記のバッチファイルを適当な名前で保存してください。(ここでは PassZipDel.batとします)
2.Zipファイルの格納フォルダに1.のbatを入れてください。(d:\zipとします)
3.作業用フォルダと出力先フォルダ(パス無しのZipのみを格納する)を作成してください。
(ここでは d:\zipwork と d:\zipoutput とします)
4.コマンドプロンプトにて以下を実行してください。
D:\zip>PassZipDel.bat d:\zipwork d:\zipoutput
@echo off for %%i in (*.zip) do ( rem Zipファイルの解凍 unzip -P "" "%%i" -d "%1" > "%1\result.txt" rem 解凍に成功したら出力先フォルダへコピー find "inflating" < "%1\result.txt" if not errorlevel 1 copy /Y "%%i" "%2" ) rem ワークフォルダのクリア del /Q %1
※UNZIPのバージョンなどによりうまく動作しない可能性があります。
(解凍の成功を出力されるメッセージにて判断しているため
下記のUNZIP32.DLLを使用しています。
以下の考え方でいかがでしょうか。
1.全てのzipファイルを一度unzipする
2.全てのzipファイルのみを削除する(展開されたファイルは削除しない)
3.2で展開されたファイルを改めてzipする
それをしたいのですが、手間が掛かるので何かいい方法を探しております。
ZIPを解凍して、解凍できなかった場合(パスワード付きなら出来ないでしょうから)それを削除するようなバッチを考えてみたのですが、うまくいきませんでした。
1.下記のバッチファイルを適当な名前で保存してください。(ここでは PassZipDel.batとします)
2.Zipファイルの格納フォルダに1.のbatを入れてください。(d:\zipとします)
3.作業用フォルダと出力先フォルダ(パス無しのZipのみを格納する)を作成してください。
(ここでは d:\zipwork と d:\zipoutput とします)
4.コマンドプロンプトにて以下を実行してください。
D:\zip>PassZipDel.bat d:\zipwork d:\zipoutput
@echo off for %%i in (*.zip) do ( rem Zipファイルの解凍 unzip -P "" "%%i" -d "%1" > "%1\result.txt" rem 解凍に成功したら出力先フォルダへコピー find "inflating" < "%1\result.txt" if not errorlevel 1 copy /Y "%%i" "%2" ) rem ワークフォルダのクリア del /Q %1
※UNZIPのバージョンなどによりうまく動作しない可能性があります。
(解凍の成功を出力されるメッセージにて判断しているため
下記のUNZIP32.DLLを使用しています。
ありがとうございます!
しかし、、バージョンが違うのかうまくいきません…。私のスキル不足で申し訳ない。
私の知識(なので全く見当違いのことを言っているかもしれません)で原因を調べてみましたが、どうもresult.txtに結果が出力されていない事が原因のようです。unzipのバージョンの問題でしょうか。
パスワード付きの test.zip を用意して
unzip -P "" test.zip -d c:\zipout >t.txt
と実行すると、
t.txtの内容
Archive: test.zip
コマンド プロンプトの表示に
skipping: test.txt incorrect password
となります。このコマンドプロンプトの表示が、t.txtに入らないと、ダメではないでしょうか。
> hoge.txt としているのに表示されてしまうのはなぜ…?
http://www.ring.gr.jp/pub/text/CTAN/tools/zip/info-zip/WIN32/unz...
これを使っているのですが、x64だからダメなのかと思い、
http://www.ring.gr.jp/pub/text/CTAN/tools/zip/info-zip/WIN32/unz...
こちらにしてみましたが、やはりダメでした。
しかし、unzipがパスワードが違って解凍できない場合は普段と違うerrorlevelを返すはずですよね…。
それで何とかなるかもしれません。が、今日は時間切れなので、、
本当に参考になりました。なにか基本的なところを間違えていたらごめんなさい(汗)
ありがとうございます!
しかし、、バージョンが違うのかうまくいきません…。私のスキル不足で申し訳ない。
私の知識(なので全く見当違いのことを言っているかもしれません)で原因を調べてみましたが、どうもresult.txtに結果が出力されていない事が原因のようです。unzipのバージョンの問題でしょうか。
パスワード付きの test.zip を用意して
unzip -P "" test.zip -d c:\zipout >t.txt
と実行すると、
t.txtの内容
Archive: test.zip
コマンド プロンプトの表示に
skipping: test.txt incorrect password
となります。このコマンドプロンプトの表示が、t.txtに入らないと、ダメではないでしょうか。
> hoge.txt としているのに表示されてしまうのはなぜ…?
http://www.ring.gr.jp/pub/text/CTAN/tools/zip/info-zip/WIN32/unz...
これを使っているのですが、x64だからダメなのかと思い、
http://www.ring.gr.jp/pub/text/CTAN/tools/zip/info-zip/WIN32/unz...
こちらにしてみましたが、やはりダメでした。
しかし、unzipがパスワードが違って解凍できない場合は普段と違うerrorlevelを返すはずですよね…。
それで何とかなるかもしれません。が、今日は時間切れなので、、
本当に参考になりました。なにか基本的なところを間違えていたらごめんなさい(汗)