展開前のzipファイルだと動作しないバッチファイルを作る!

結論

rem 自身のフルパスに".zip"が含まれるか検索
echo %~dp0 | find ".zip" >NUL
if not ERRORLEVEL 1 goto STOP

rem 展開されている場合

echo 処理を行います。

pause

rem 終了
exit /b

rem 展開されていない場合
:STOP

echo Zipファイルのため処理を中断します。展開してください。

pause

考え方

ハカセ、自分が展開されていないzipファイルの場合には

処理をしないバッチが欲しいんだけど…

うむ。展開されていないまま実行すると動作する保証がないからな。

ただ、バッチファイル自身は自身が展開されているかどうかはわからんのじゃ。

え、じゃあどうするのさ!

自身のフルパスを見て、

“.zip”というフォルダが存在した場合は自身が展開されていない

と判断すれば良い。

なるほど!展開されていたら自身のフルパスには”zip”は入らないもんね。

あれ、でもこれは「.zip」がついているかどうかしか見ていないから、

普通に「test.zip」っていうフォルダを作ったらダメだよね?

そんな奴のことは考えとらん!

コメント

タイトルとURLをコピーしました