題 在cmd.exe中輸入%^是一個Windows復活節彩蛋嗎?


當我輸入 %^ 在cmd並按下 輸入,它說:

More?

當我按下 輸入 再次,它給出了同樣的回應。

這是複活節彩蛋嗎?這是什麼?


76
2018-05-20 14:51


起源


您應該再次按下輸入,然後用Google搜索“cmd carat”而不是:) - panhandel
輸入“ip ^”[enter]“config”[enter] ...沒有qoutes。現在你明白了^的作用。 - n00b
這種行為會讓你覺得它是一個複活節彩蛋嗎? - jamesdlin
我猜是因為 More 與你通常所期望的不同。 (通常你會認為它會說無效/) - Evan Carslake


答案:


CMD是基於行的。它一次只能讀取並執行一行。當您輸入並且尚未完成一行時,它會提示 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


.
--

46
2018-05-20 19:55



你在哪裡找到這個標點符號列表? - Steven
我自己寫了。參考資料是MSDos 6.22幫助文件,Windows Vista命令幫助(即 dir /?)和Windows軟件開發工具包。 - trigger
加上MS曾經有這個免費下載,不再出現。第2章來自Windows NT Shell Scripting,由MacMillan Technical Publishing出版(我把它放在我的skydrive上 skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121) - trigger
'('和')'是括號;括號通常被認為是'[]'(方括號)或'<>'(尖括號)。 - toddkaufmann
@toddkaufmann“Brackets”也可以參考(和)。這是美國以外的一個常見用途,請參閱 englishclub.com/writing/punctuation-round-brackets.htm 例如。 - hvd


沒有。

作為2002年可信賴計算計劃的一部分,微軟正式停止在其計劃中包含復活節彩蛋。   
http://en.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?)該命令,因為它以轉義字符結束 ^

^ escape字符可用於使長命令更具可讀性   通過將它們分成多行並逃離回車   +換行(CR / LF)在一行的末尾
http://ss64.com/nt/syntax-esc.html


111
2018-05-20 14:53



他們擺脫了所有未來的複活節彩蛋以增加可靠性?他們怎麼想這樣做? - Panzercrisis
@Panzercrisis為什麼沒有復活節彩蛋? blogs.msdn.com/b/larryosterman/archive/2005/10/21/483608.aspx - Steven
為什麼提示更多?如果你沒有對第一次做出任何反應,第二次? - Random832
@AlecTeal是的,但要做到這一點,我必須繼續推桿 ^ 在每一行的末尾。如果我輸入一些東西(沒有 ^)到第一個 More? 提示,它立即執行,但如果我只是輸入,它會提示 More? 再次。編輯:我已經做了一些進一步的測試迴聲,揭示了進入空白行 More? prompt在命令行中輸入文字CR / LF。不知道為什麼我昨天沒碰到那個。 - Random832
這是一個非常醜陋的博客網站。 MS在其值得信賴的計算計劃中是否包含品牌推廣考慮因素? - Patrick M


很簡單, 從所有其他答案和評論(以及我自己的一些輸入),這是我收集的:

  • 微軟不包括復活節彩蛋,這不是一個。
  • 即使只是打字 ^ 給出相同的回應。
  • ^ 用於完成不完整的命令:[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用人類語言作出回應

  • 6
    2018-06-10 07:24



    @Steven呵呵,當然:) - rahuldottech