web-dev-qa-db-ja.com

cmd.exeに%^と入力するとWindowsのイースターエッグですか?

Cmdで%^を入力して押したとき Enterそしてそれは言った:

More?

私が押したとき Enter 繰り返しますが、それは同じ応答を与えました。

これはイースターエッグですか?これは何ですか?

78
rahuldottech

CMDはラインベースです。一度に1行ずつ読み取って実行します。あなたがタイプしていて、あなたが行を終えていないとき、それはMore?でプロンプトを出します。

あなたの特別なことは、行末がないので%サインの後に来るものを見るのを待っていることです。

括弧を使うと見やすくなります

dirを試す

それから

(dir
echo %time%
(type c:\windows\win.ini
)
)

行が完成したとき(大括弧に一致したとき)にのみ、それは読み取られて実行されます。

これが句読点のリストです。

&    separates commands on a line.

&&    executes this command only if previous command's errorlevel is 0.

||    (not used above) executes this command only if previous command's errorlevel is NOT 0

>    output to a file

>>    append output to a file

<    input from a file

|    output of one command into the input of another command

^    escapes any of the above, including itself, if needed to be passed to a program

"    parameters with spaces must be enclosed in quotes

+ used with copy to concatenate files. E.G. copy file1+file2 newfile

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,

%variablename% a inbuilt or user set environmental variable

!variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batch file's name.

%* (%*) the entire command line.

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command Prompt and double % sign in a batch file.

\\ (\\servername\sharename\folder\file.ext) access files and folders via UNC naming.

: (win.ini:streamname) accesses an alternative Steam. Also separates drive from rest of path.

. (win.ini) the LAST dot in a file path separates the name from extension

. (dir .\*.txt) the current directory

.. (cd ..) the parent directory


\\?\ (\\?\c:\windows\win.ini) When a file path is prefixed with \\?\ filename checks are turned off. 

< > : " / \ | Reserved characters. May not be used in filenames.



Reserved names. These refer to devices eg, 

copy con <filename> 

which copies a file to the console window.

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, 

COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, 

LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9



Maximum path length              260 characters
Maximum path length (\\?\)      32,767 characters (approx - some rare characters use 2 characters of storage)
Maximum filename length        255 characters


.
--
48
trigger

いいえ.

マイクロソフトは2002年のTrustworthy Computing Initiativeの一環として、イースターエッグをプログラムに含めることを正式に中止しました。
http://ja.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products

ラリーオスターマンは2005年10月にイースターエッグを追加することが終了の理由であると指摘しました。

最近では、Microsoft OSにイースターエッグを追加することが差し迫って終了する理由となっているため、他の方法が発生する可能性はほとんどありません。

http://blogs.msdn.com/b/larryosterman/archive/2005/10/20/483110.aspx

コマンドプロンプトは、エスケープ文字More?で終わっているので、コマンドの継続(^)を探しています。

^エスケープ文字を使用すると、長いコマンドを複数の行に分割し、行末でキャリッジリターン+ラインフィード(CR/LF)をエスケープすることで読みやすくすることができます。
http://ss64.com/nt/syntax-esc.html

112
Steven

本当に単純です、他のすべての答えとコメント(そして私自身のいくつかの入力)からこれが私が集めたものです:

  • マイクロソフトにはイースターエッグは含まれていませんし、これも1つではありません。
    • ^と入力しても同じ応答になります。
    • ^は不完全なコマンドを終了するために使用されます。[thanks @ n00b]
      C:\windows\system32>net ^
      More? user
      
      User accounts for \\INFINITEPC
      
      -------------------------------------------------------------------------------
      Administrator            Guest                    Rahul
      The command completed successfully.
      
    • そのため、基本的にip^を入力してEnterを押してからconfigを入力すると、cmdはそれをipconfigとして登録します。
    • ^は、長いコマンドを読みやすくするために使用されます。 [ありがとう@Steven]
    • Cmdが人間の言語で反応するとは思っていなかったので、これはイースターエッグだと思った
  • 7
    rahuldottech