Apakah mengetik% ^ ke dalam cmd.exe merupakan telur paskah Windows?

79

Ketika saya mengetikkan %^cmd dan menekan Enter, dan dikatakan:

More?

Ketika saya menekan Enterlagi, itu memberikan respons yang sama.

Apakah ini Telur Paskah? Apa ini?

rahuldottech
sumber
13
Anda harus menekan enter sekali lagi, dan kemudian googled "cmd carat" sebagai gantinya :)
panhandel
6
ketik "ip ^" [enter] "config" [enter] ... tanpa qoutes. sekarang kamu mengerti apa yang dilakukannya.
n00b
7
Bagaimana dengan perilaku ini yang membuat Anda berpikir bahwa itu adalah telur paskah?
jamesdlin
1
Saya menduga karena Morecukup berbeda dari apa yang biasanya Anda harapkan. (Biasanya Anda akan berpikir itu hanya akan mengatakan tidak valid /)
Evan Carslake

Jawaban:

50

CMD berbasis garis. Itu hanya membaca dan mengeksekusi satu baris pada satu waktu. Saat Anda mengetik dan Anda belum menyelesaikan satu baris, ia meminta More?.

Hal spesifik Anda adalah tidak ada garis yang berakhir sehingga menunggu untuk melihat apa yang muncul setelah %tanda.

Lebih mudah dilihat menggunakan tanda kurung

Mencoba dir

kemudian

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

Hanya ketika baris selesai (tanda kurung) baru dibaca dan dieksekusi.

Berikut daftar tanda baca.

&    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


.
--
pelatuk
sumber
4
Di mana Anda menemukan daftar tanda baca ini?
Steven
5
Saya menulisnya sendiri. Rujukannya adalah File Bantuan MSDos 6.22, bantuan perintah Windows Vista (yaitu dir /?), dan Kit Pengembangan Perangkat Lunak Windows.
memicu
1
Plus MS yang digunakan untuk mengunduh ini gratis, tidak muncul lagi. Bab 2 dari Windows NT Shell Scripting, diterbitkan oleh MacMillan Technical Publishing (Saya sudah memasangnya di skydrive saya di skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 )
trigger
'(' dan ')' adalah tanda kurung; tanda kurung biasanya dianggap '[]' (tanda kurung siku) atau '<>' (tanda kurung siku).
toddkaufmann
7
@toddkaufmann "Kurung" juga bisa merujuk ke (dan). Ini adalah penggunaan umum kata di luar AS, lihat englishclub.com/writing/punctuation-round-brackets.htm misalnya.
hvd
114

Tidak.

Microsoft secara resmi berhenti memasukkan telur Paskah dalam programnya sebagai bagian dari Inisiatif Komputasi yang Dapat Dipercaya pada tahun 2002.
http://en.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products

Larry Osterman mencatat pada Oktober 2005 bahwa menambahkan Telur Paskah adalah alasan untuk penghentian.

Saat ini, menambahkan telur paskah ke OS Microsoft adalah alasan langsung untuk penghentian, jadi sangat tidak mungkin Anda akan pernah melihat yang lain.

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

Command prompt mencari kelanjutan ( More?) dari perintah, karena diakhiri dengan karakter escape ^.

Karakter ^ escape dapat digunakan untuk membuat perintah panjang lebih mudah dibaca dengan membaginya menjadi beberapa baris dan keluar dari Carriage Return + Line Feed (CR / LF) di akhir baris
http://ss64.com/nt/syntax- esc.html

Steven
sumber
31
Mereka menyingkirkan semua telur paskah masa depan untuk meningkatkan kepercayaan? Bagaimana mereka mengira itu berhasil?
Panzercrisis
29
@ Panzercrisis Mengapa Tidak Ada Telur Paskah? blogs.msdn.com/b/larryosterman/archive/2005/10/21/483608.aspx
Steven
12
Mengapa ini meminta lebih? kedua kalinya jika Anda tidak menanggapi apa pun yang pertama?
Random832
2
@AlecTeal Ya, tetapi untuk melakukan itu saya harus tetap meletakkan ^di akhir setiap baris. Jika saya mengetikkan sesuatu (tanpa ^) ke More?prompt pertama , ia langsung dieksekusi, tetapi jika saya hanya memasukkan, itu meminta More?lagi. EDIT: Saya sudah melakukan beberapa pengujian lebih lanjut dengan echo yang mengungkapkan bahwa memasukkan baris kosong pada More?prompt menempatkan CR / LF literal di baris perintah. Tidak tahu mengapa saya tidak mengalami hal itu kemarin.
Random832
2
Inisiatif Komputasi yang Dapat Dipercaya mencegah perilaku tidak berdokumen, tetapi mereka tidak pernah mencegah telur paskah yang didokumentasikan ;)
Derek 功夫 '功夫
7

Sederhana banget, Dari semua jawaban dan komentar lain (dan beberapa masukan saya sendiri) inilah yang saya kumpulkan:

  • Microsoft tidak memasukkan telur Paskah dan ini bukan satu.
  • Bahkan mengetik pun ^memberikan respons yang sama.
  • ^ digunakan untuk menyelesaikan perintah yang tidak lengkap: [terima kasih @ n00b]

    C:\windows\system32>net ^
    More? user
    
    User accounts for \\INFINITEPC
    
    -------------------------------------------------------------------------------
    Administrator            Guest                    Rahul
    The command completed successfully.
    

  • Jadi pada dasarnya jika Anda mengetik ip^dan menekan enter lalu ketik configkemudian cmd register sebagai ipconfig.
  • ^digunakan untuk membuat perintah panjang lebih mudah dibaca. [terima kasih @Steven]
  • Saya pikir ini adalah telur paskah karena saya tidak mengharapkan cmd untuk merespons dalam bahasa manusia

  • rahuldottech
    sumber