パスワードつきのzipファイルをすべて削除するワンライナー - 技術メモ帳

e:/bin/UnxUtils/usr/local/wbin/find.exe . -type f -name '*.zip' ! \( -exec unzip -qq  -P PASSWORD -t {} \; \) -print0 | xargs -r -0 rm
    • はまりどころ
      • C:\WINNT\system32\find.exeにもfind.exeが存在したこと。環境変数で定義したパスよりもこちらが先に検索されるので、絶対パスでfind.exeを指定しないとどうやっても動きません。
      • findと組み合わせてunzipに-Pオプションでパスワードを渡すとき、ダブルクォートで囲むとエラーになる。クォートせずに文字列を描いたらうまくいったのですが、これだとから文字をパスワードとして送り込めないんじゃ。
    • 出来合のソフトで頑張るより、Perl + File::Find + Archive::Zipあたりでスクリプトを書いてしまった方が幸せになりそうだ。