スクリプトが消失した理由は、分かってみれば単純でした。
コマンドプロンプトからコマンドラインをコピーするとき、プロンプトの部分もコピーしていたため、プロンプトの最後の「>」がリダイレクトとして働いたわけです。
つまり、
c:\hoge>fuga.bat param1 param2 param3
というふうに実行したあと、この行を丸ごとコピー&ペーストしてしまったので、
c:\hoge>c:\hoge>fuga.bat param1 param2 param3
となったわけす。シェル(cmd.exe)くんの解釈では、これは、
「c:\hoge」を実行して、その結果を「fuga.bat」に格納して、なんたらかんたら、
という意味になります。
後の展開はご想像通り。
「c:\hoge」は単なるディレクトリなので、実行できない → 標準出力には何も出てこない → 空文字列でファイル「fuga.bat」を上書き。
今回の教訓。
環境変数promptをデフォルトのまま使うのはちと危険。
私の場合、この事故以来、システムの環境変数の設定で、
prompt=$d$s$t$s$+$s$p$_@
としています。
コマンドプロンプトからコマンドラインをコピーするとき、プロンプトの部分もコピーしていたため、プロンプトの最後の「>」がリダイレクトとして働いたわけです。
つまり、
c:\hoge>fuga.bat param1 param2 param3
というふうに実行したあと、この行を丸ごとコピー&ペーストしてしまったので、
c:\hoge>c:\hoge>fuga.bat param1 param2 param3
となったわけす。シェル(cmd.exe)くんの解釈では、これは、
「c:\hoge」を実行して、その結果を「fuga.bat」に格納して、なんたらかんたら、
という意味になります。
後の展開はご想像通り。
「c:\hoge」は単なるディレクトリなので、実行できない → 標準出力には何も出てこない → 空文字列でファイル「fuga.bat」を上書き。
今回の教訓。
環境変数promptをデフォルトのまま使うのはちと危険。
私の場合、この事故以来、システムの環境変数の設定で、
prompt=$d$s$t$s$+$s$p$_@
としています。