0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一度実行したら消滅する自爆式バッチファイル

Posted at

概要

一度実行したら自らを削除するバッチファイルの挙動について考察する.
どちらかといえば,筆者が気になったことの確認とその記録,という意味合いが強い.

詳細

次のようなバッチファイルを考える.

self-destruct.bat
chcp 65001
echo このバッチファイルは5秒後に消去されます
powershell sleep 5
del /Q "C:\Users\denkiuo604\self-destruct.bat"

この self-destruct.bat を実行すると,実行開始から5秒後に,実行終了とともに self-destruct.bat が削除される.

問題

次のバッチファイル self-destruct-log.bat を実行したとき,ファイル self-destruct.log は生成されるか.

self-destruct-log.bat
chcp 65001
echo このバッチファイルは5秒後に消去されます
powershell sleep 5
del /Q "C:\Users\denkiuo604\self-destruct-log.bat"
echo 実行ログを出力しました.バッチは5秒後に終了します. > "C:\Users\denkiuo604\self-destruct.log"
powershell sleep 5
解答

ファイル self-destruct.log生成されない

del コマンドが実行された時点でバッチは終了する.
ちなみに,del コマンド実行後は (一瞬しか表示されないが) 次のような出力になる.

C:\Users\denkiuo604>del /Q "C:\Users\denkiuo604\self-destruct-log.bat"
The batch file cannot be found.

[プロセスはコード 1 (0x00000001) で終了しました]
このターミナルを Ctrl+D で閉じるか、Enter キーを押して再起動できます。

参考文献

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?