何十年も Windows さわっているけど知りませんでした。
本番環境で起きていたら大惨事につながることもあるので注意喚起としてここにメモしておきます。
今回の画像は Windows11 のものですが、Windows10 でも同じ事象を確認しています。
結論から言うと、ファイルをペーストしようとして .bat ファイルを選択した状態で「右クリック → 貼り付け」を押すと、選択していた .bat が実行されます。
その際、コピーしていた方のファイルパスが引数として渡されます。
実演
次のような .bat プログラムを作成します。
引数を標準出力に表示するだけです。
D:\tmp\dst\sample.bat
もう一つコピー元のファイルを適当につくります。
D:\tmp\src\test.txt
それではやっていきます。
エクスプローラ上で D:\tmp\src\test.txt をコピーします。
test.txt を選択してコピーボタンを押します。ショートカット Ctrl+c でも大丈夫です。
次に D:\tmp\dstを開いて sample.bat を選択した右クリック→ペーストボタンを選択します。
するとあら不思議。コマンドプロンプトが起動してバッチファイルが実行されました。引数として test.txt のフルパスが渡されています。
なお、ショートカットの Ctrl+v や、エクスプローラ上部の貼り付けボタン(下図参照)だと期待通りに test.txt が貼り付きます。
まとめ
ということで、本番機でエクスプローラを操作するときに誤ってバッチプログラムを実行させないよう注意しましょう。
ていうか、こんなんバグだろ!はやく直せ!!