サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
バッチファイルで自分を上書きしたときの動きを調べます。
◆環境OS | Windows 7 Service Pack1 64bit |
---|---|
MS-DOS | 6.1.7601 |
バッチファイルの途中で、自分自身を上書きするバッチファイルを作ります。
updateOwn.bat | ||
|
途中でxcopyでnew.batを自分自身(updateOwn.bat)に上書きするようにしました。 その後、「I'm update own...」と表示するようにしています。
new.bat | ||
|
xcopyまではupdateOwn.batと同じですが最後に「I'm new Batch!!」と表示するようにしました。
updateOwn.batをエクスプローラからダブルクリックして実行してみます。
updateOwn START
C:new.bat
1 個のファイルをコピーしました
't' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
I'm new Batch!!
続行するには何かキーを押してください . . .
C:new.bat
1 個のファイルをコピーしました
't' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
I'm new Batch!!
続行するには何かキーを押してください . . .
バッチを実行すると、そのバッチの内容がメモリに読み込まれ実行されると思っていました。 そうであれば、実行中に実行したバッチファイルを上書きしても、上書き前のバッチファイルが実行されると思っていました。 しかし、I'm new Batch!!と表示された事から、実行中に実行したバッチを上書きすると途中から上書きされた内容でう動作するという事が分かりました。。。
ちなみにxcopyで失敗すると元のバッチがそのまま最後まで動きます。
updateOwn START
ファイルが見つかりません - new.bat
0 個のファイルをコピーしました
I'm update own...
続行するには何かキーを押してください . . .
ファイルが見つかりません - new.bat
0 個のファイルをコピーしました
I'm update own...
続行するには何かキーを押してください . . .
実行途中で動きが変わるとは驚きです。 自分自身が上書きされた場合、続きはどこから実行するのかどうやって判断しているのでしょうか。 行数でしょうか。
また「't' は、内部コマンド〜」というエラーも謎です。
Copyright (C) 2018 ymlib.com