プロが教えるわが家の防犯対策術!

WINRARでは、rar、zip、lzhなどの書庫を”書庫をテスト"を使うと
破損しているか、どうかをテストしてくれます。

数個であれば良いんですが、パソコンの中を全部調べるとかなると
チェックする量が多くなってくると、コマンドプロンプトで実行した内容を
自作ソフトでパイプして判断処理しています。

そこでWinRARには、コマンド用でRar.exe があるのですが、

cmd後に、下記のコマンドを実行すると
C:\Program Files\WinRAR>Rar.exe t "c:\2.rar"
であればチェックしてくれるのに対して、

これをzipファイルにした途端、動作しません。
※もちろん、c:\2.zipは存在しています。
C:\Program Files\WinRAR>Rar.exe t "c:\2.zip"

今までは、7z.exeでチェックしていたのですが、
一部の書庫が7z.exeチェックで異常(エラー)になるのですが、
それをWinRARで書庫チェックすると正常で、WinRARでの解凍も正常で、中身も正常という
書庫が一定数存在しているようで。。。。

どうも色々調べてみるとWinRARでないと正常に解凍できない類の書庫みたいです。
たぶんWinRARがチェックが緩く(?)内部的に補完してくれているか、zipの内部の圧縮レベルに
ちゃんと対応しているか、7zのチェックが厳密すぎてエラーになっているような気がします。

質問:WinRARのコマンド版Rar.exeを使ってzipファイルを書庫テストしているのですが
どうすれば、書庫テストが可能なのでしょうか?教えてください。

A 回答 (4件)

-t オプションを付ければいいみたいですが、、、



詳細は
"rar /?"
してみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

-t オプションを付けましたが駄目でした。

C:\Program Files\WinRAR>Rar.exe t "c:\2.zip"
C:\Program Files\WinRAR>Rar.exe t -t "c:\2.zip"

などを実施しました。
No files to extract と出るばかりです。
"c:\2.zip"自体は、私の環境で存在しますし、WINRARや他のソフトでは解凍可能な正常なファイルです。

念のため、確認させて頂きたいのですが、実際にzipファイルで試されましたか?
rarファイルなら、tや-tでテスト出来るんですよ・・・・

しかしながら、zipファイルになった途端、書庫テストが出来ないで困っているのです。
WINRARでは出来るのに。。。

あともしかしたら、コマンドラインのオプションだけを見て、回答しているのでは無いかと思ったので
もしそうであれば、実際にzipファイルで試していただけないでしょうか?

その際に、どういうコマンドを実施したか、教えてください。
よろしくお願いいたします。

お礼日時:2018/09/14 00:19

zipが対象ということはわかりましたが、


rar.exeはWinRARのコマンド版ではないし、
そもそも、zipを扱えません
(rarしか扱えない。だからrarの書庫テストのことかと思っていました)。

”Winrar t <zipファイル>”でもいけると思うので、
それでやればいいのではないでしょうか。
    • good
    • 0
この回答へのお礼

>zipが対象ということはわかりましたが、
WinRARのコマンド版Rar.exeを使ってzipファイルを書庫テストしているのですが
どうすれば、書庫テストが可能なのでしょうか?教えてください。

と、ちゃんとzipファイルであることは名言しています、
ちゃんと全文よんで回答をお願いします。


>そもそも、zipを扱えません
やはりrar.exeは、WinRARと同様ではないのですね。。。

”Winrar t <zipファイル>”の場合、対象ファイルが10万個などある場合
エラーログが出ても、どれがどれだか分かりにくいんですよね。

また自作ソフトで結果分をパイプして内容を取得しているため
他のアプリのエラーログをどうやって取り込むか、問題が残ります。

どうしたらいいと思いますか?

お礼日時:2018/09/15 01:46

うーん、、


回答するなら手を動かすのが当たり前とか、
回答もらっておいて「ちゃんと質問読め」って。
何様なんだろう。
zipが扱えないrar.exeでしこしこ頑張っていたところをみると
スキル無しなんでしょうが。

>また自作ソフトで結果分をパイプして内容を取得しているため
>他のアプリのエラーログをどうやって取り込むか、問題が残ります。

これ別の質問だよね。Winrarと直接関係ないし。
表題の質問の回答はもらったんだから、
一旦、終わりにするべきじゃないの?
    • good
    • 0
この回答へのお礼

申し訳ございませんが、質問の趣旨と違う内容は書き込み(答え)しないでもらえますでしょうか?

質問内容は、自作ソフトでパイプして判断処理をしている為、コマンド処理が必要であり
zipファイルをrar.exeで、どうすれば良いか?です。


私は初めから、zipファイルについては、そのように質問をしており
そのバックボーンの背景が分かるように説明しております、

しかしながら、makunanamanさんのやり取りで
今回rar.exeでは出来ないことが分かった訳ですが、

そもそもmakunanamanさんは、tを使えばいける、WinRARつかえばいいよ といった
よく質問内容を見てない感じで、
(ちゃんと見ていたら申し訳ないですが、少なくとも私はそう感じました。なら初めからzipは使えないという回答をすれば終わった話なので)
無責任に回答されているので、ちゃんと質問を良く見て回答をしてほしい訳です。

質問を見ずにどうやって回答するのか、私は疑問ですよ?

また、ほぎほぎさんは、私よりスキルがある方ようなので
本件について、どのように対応できるか回答可能でしょうか?

もしスキルが私同様に無いのであれば
回答を控えますよう、お願いいたします。

お礼日時:2018/09/15 02:46

恐らくですが、「Rar.exe」は、Zipファイルのチェックには未対応だと思いますので、「WinRAR.exe」の方を使ってみてください。



WinRAR t -inul 対象ファイル

という構文で実行すると、エラーレベルを返してくれますので、それでエラーかどうか判断してください。

「-inul」は、すべてのメッセージを無効するスイッチオプションです。メッセージボックスが表示されて処理が一時停止されるのを防ぐ為のものです。

バッチファイルで処理する場合は、以下のような感じで処理すると良いかと思います。「設定」の部分だけを環境に合わせて書き換えて、テストしてみてください。

こちらでも動作確認はしましたが、ざっと書いただけなので、まずい箇所があれば修正して使ってください。

――――――――――――――――――――――――

@echo off

rem --------------

rem ■ 設定

set "WinRAR.exeのパス=C:\Program Files\WinRAR\WinRAR.exe"

set "対象ファイル=C:\xxx\*.zip"
rem (※サブディレクトリのファイルは含めません)

set "エラーログ=エラーログ.log"

rem --------------

rem ■ 前回エラーログの削除
if exist "%エラーログ%" del /q "%エラーログ%"

rem ■ ファイルチェックのループ
for %%l in ("%対象ファイル%") do call :ファイルチェック "%%~l"

rem ■ 結果表示
if exist "%エラーログ%" start "" "%エラーログ%"
echo.
echo.
if exist "%エラーログ%" echo.  エラーがありました
if not exist "%エラーログ%" echo.  エラーはありませんでした
echo.
echo.
pause
exit /b

rem --------------

:ファイルチェック

"%WinRAR.exeのパス%" t -inul "%~1"

if not "%errorlevel%"=="0" echo."%~1">> "%エラーログ%"

exit /b

rem --------------

――――――――――――――――――――――――
    • good
    • 0
この回答へのお礼

kon77さん、回答ありがとうございます!
WINRARでは、結果の返り値が定義されているんですね。
これなら確かに%errorlevel%で取得して判断できそうです。

具体的にサンプルソースも提示していただき、とても助かりました!
やりたい事が、出来そうです。

当初、私もrar.exeのドキュメントも見たのですが、zipは不可の文字が書いておらず、
ググっても言及しているページは無く(たぶんどこかに記述されているかも知れませんが。)

WinRARのバッチ処理するには、コマンドライン版のrar.exeがあるから
それを使う説明が多く、そのことから、私も単純に”WinRARのコマンド版=rar.exe”と思っておりました。

そして(WinRARも行けるからrarも)zipファイルも行ける筈(ない訳が無い)なのに、どうして動かないんだろう?
という事から、教えてサイトに投稿した次第です。


私のバックボーン含め説明しているにも関わらず
それを良く見ずにアドバイスする方や、解決スキルも無いのに口出す誰かと違い
とても大変助かりました!

ベストアンサーにて閉めたいと思います。
ありがとうございました。

お礼日時:2018/09/15 17:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!