今日のDailyWTF記事に触発されました。
著者は、C:\Program.exe
例えばへのショートカットをクリックするとファイルが実行されると主張していますC:\Program Files\Doom 2\doom2.exe -nomusic
。
おそらく、Windowsは最初C:\Program
にarguments を使用して起動しようとしますFiles\Doom 2/doom2.exe -nomusic
。
ない場合は、引数を使用してC:\Program.exe
試行C:\Program Files\Doom
します2/doom2.exe -nomusic
。
そして、ない場合C:\Program Files\Doom.exe\
、最終的に試行C:\Program Files\Doom 2\doom2.exe -nomusic
して成功します。
これは私には完全にナンセンスなように聞こえます。このように機能したとは信じられません。解説者はそれをうまく説明しています:
Windowsのリリースされたバージョンが、OPで説明されている試行錯誤のアプローチを実行したことは信じられません。
Windowsのリリースバージョンには、デフォルトとして脳死の動作があったと私は絶対に信じています。私は何度も何度も直接体験しました。
私が信じていないのは、リリースされたバージョンのWindowsには、この記事で説明されているように、この脳死の動作があったということです。少なくとも10年後、XPに先行するWindowsのバージョンにならなければならなかったので、ランダムなDaily WTFの提出がそれを発見するまで気付かれないようにするには、セキュリティの欠陥が大きすぎます。
わかりやすくするために編集します。これを自分でテストした方法を次に示します。
- notepad.exeをC:\ program.exeにコピーします
- C:\ program files \ Internet explorer \ iexplore.exeを実行します
- メモ帳が開きます。これは、C:\ programと呼ばれるものを見つけるためです。
- progam.exeをC:\ program files \ Internet.exeに移動します
- C:\ program files \ Internet explorer \ iexplore.exeを実行します
記事の著者(およびMicrosoftのこの記事)によると、メモ帳はまだ開いているはずです。しかし、そうではなく、コマンドは次のメッセージで失敗します。
C:\program is not recognized as an internal or external command, operable program or batch file.
繰り返しますが、C:\ programが呼び出されるという記事の主張については議論していません。Windowsは、一致するまですべてのディレクトリを再帰的に試行することを議論しています。
それでは、Windowsのどのバージョンでもこのように機能しましたか?
C:\Program Files\...
、と考えWindowsは、このようなショートカット(またはRunコマンド、またはコマンドプロンプトコマンド、またはその他の方法)を解釈するように"C:\Program" Files\...
。最初の部分はありそうにないように見えますが、2番目の部分は可能性があり、私には期待されているようです。
C:\Program Files
れるの"C:\Program Files"
でしょうか?少し読んでみると、場合によっては答えが「はい」であるように見えますが、これは本当に予期しない唯一の領域です。