見出し画像

バッチファイルは自分自身を消せるのか。

バッチで資源を配布した後に、使った資源の中身を解析されたくないので、動いた後にすぐ消すように仕込めるのか。

環境作成(単なるコピーバッチ作成)

C:\tempに以下を作成
・testフォルダ作成
 sample.txtを格納。内部は適当に文字埋める。
・test1フォルダ作成
 testフォルダの中身をコピーさせる
・deletestフォルダ作成
 cptest.batを格納。こちらを実行させる。
 中身は以下

xcopy c:\temp\test\ c:\temp\test1
exit

testのフォルダのsmaple.txtがtest1フォルダに格納されるというバッチファイルとして動くことを確認する。

消す仕組み

以下のようにする。

xcopy c:\temp\test\ c:\temp\test1
del C:\temp\deletest\cptest.bat /Q
exitけ

結果。以下のメッセージが出たが無事消えた。

xcopy c:\temp\test\ c:\temp\test1 /Y
C:\temp\test\sampletest.txt
1 個のファイルをコピーしました

del C:\temp\deletest\cptest.bat /Q
バッチ ファイルが見つかりません。か

格納されたフォルダ毎消せるのか?

バッチファイル以外に同時に資源をローカルに格納させて実行させる場合は使った資源一切合切消したい。フォルダレベルで配布した場合、そのフォルダは消えるのか確認する。

作ったのはこれ

xcopy c:\temp\test\ c:\temp\test1 /Y
rmdir C:\temp\deletest\ /s /q
exitけ

結果。以下のメッセージが出たが無事消えた。
※実行フォルダをエクスプローラーで開いたままだとフォルダだけ残る。
 管理者権限だときちんと消える。

rmdir C:\temp\deletest\ /s /q
指定されたパスが見つかりません。ま

まとめ

・バッチファイルは実行させると自身を消すことが可能。
・格納されているフォルダ毎消すことも可能。
バッチファイルはメモリで実行されることがわかった。

今回は以上

その他のバッチファイルの記事は以下


この記事が気に入ったらサポートをしてみませんか?