% ^ Yazarak cmd.exe bir Windows paskalya yumurtası mı?


79

Ben daktilo zaman %^cmd ve preslenmiş Enterve denildi:

More?

Ben basıldığında Enteryine aynı yanıtı verdi.

Bu bir Paskalya Yumurtası mı? Bu nedir?


13
Bir kez daha girip
basmalıydınız

6
"ip ^" [enter] "config" [enter] ... yazın, qoutes olmadan. şimdi ne yaptığını anladın.
n00b

7
Peki ya bu davranış bir paskalya yumurtası olduğunu düşündürüyor?
jamesdlin

1
Tahmin ediyorum More, çünkü normalde beklediğinizden yeterince farklı. (Normalde bunun sadece geçersiz diyeceğini düşünürdünüz /)
Evan Carslake

Yanıtlar:


50

CMD çizgi tabanlıdır. Her seferinde sadece bir satır okur ve yürütür. Yazarken ve sorduğu bir satırı tamamlamadıysanız More?.

Özel olan şey şu ki biten bir çizgi yok, bu yüzden %işaretten sonra ne olacağını görmek için bekliyor .

Parantez kullanarak görmek daha kolay

Deneyin dir

sonra

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

Sadece satır tamamlandığında (eşleşen parantez) okunur ve yürütülür.

İşte noktalama işaretlerinin bir listesi.

&    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


.
--

4
Bu noktalama işaretini nereden buldun?
Steven,

5
Kendim yazdım. Referanslar MSDos 6.22 Yardım Dosyası, Windows Vista komut yardımı (örn. dir /?) Ve Windows Yazılım Geliştirme Seti'dir .
tetikleme

1
Ayrıca, MS bunu ücretsiz indirmek için kullanıyordu, artık görünmüyor. (Ben benim SkyDrive üzerinde o kadar koyduk MacMillan Teknik Yayıncılık tarafından yayınlanan Windows NT Shell Scripting, Bölüm 2 skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 )
tetik

'(' ve ')' parantezdir; parantezler genellikle '[]' (köşeli parantez) veya '<>' (köşeli parantez) olarak kabul edilir.
toddkaufmann

7
@ toddkaufmann "Parantez" ayrıca (ve) ifadelerini de içerebilir. Bu, ABD dışındaki kelimelerin yaygın bir kullanımıdır, örneğin englishclub.com/writing/punctuation-round-brackets.htm adresini ziyaret edin.
HVD

114

Hayır.

Microsoft, 2002’deki Güvenilir Bilgi İşlem Girişiminin bir parçası olarak programlarında Paskalya yumurtaları dahil olmak üzere resmen durdu.
Http://en.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products

Larry Osterman, Ekim 2005’te bir Easter Egg eklemenin sonlandırma gerekçesi olduğunu belirtti.

Günümüzde, bir Microsoft işletim sistemine bir paskalya yumurtası eklemek sonlandırmanın hemen gerekçesidir, bu nedenle başka bir tane görmemeniz oldukça olasıdır.

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

Komut istemi, More?kaçış karakteriyle sona erdiği için komutun bir devamı ( ) arıyor ^.

^ Kaçış karakteri, uzun komutları birden fazla satıra bölerek ve satırın sonundaki Satır İadesi + Satır Beslemesinden (CR / LF) kaçan
http://ss64.com/nt/syntax- esc.html


31
Güvenilirliği artırmak için gelecekteki tüm paskalya yumurtalarından kurtuldular mı? Bunun işe yaradığını nasıl düşünüyorlar?
Panzercrisis

29
@ Panzercrisis Neden Paskalya Yumurtaları Yok? blogs.msdn.com/b/larryosterman/archive/2005/10/21/483608.aspx
Steven

12
Neden daha fazla bilgi istiyor? birincisine cevap olarak hiçbir şey koymazsanız, ikinci kez mi?
Random832

2
@AlecTeal Evet, ancak bunu yapmak için ^her satırın sonuna devam etmem gerekiyor . ^İlk More?istemde (no ile ) bir şey yazarsam hemen çalıştırılır, ancak sadece girersem More?tekrar ister . EDIT: Echo ile boş bir satıra girmenin More?komut satırına değişmez bir CR / LF koyduğunu gösteren eko ile bazı testler yaptım . Dün neden buna rastlamadığımı bilmiyorum.
Random832

2
Güvenilir Bilgi İşlem Girişimi belgesiz davranışları engelledi, ancak belgelenmiş paskalya yumurtasını hiçbir zaman engellemedi ;)
Derek 朕 會 功夫

7

Gerçekten basit, Diğer tüm cevaplardan ve yorumlardan (ve kendime ait bazı girdilerden) topladığım şey:

  • Microsoft, Paskalya yumurtaları içermez ve bu bir değildir.
  • Yazmak bile ^aynı cevabı verir.
  • ^ eksik komutları bitirmek için kullanılır: [thanks @ n00b]

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

  • Temelde ip^yazıp enter tuşuna basarsanız configyazdıktan sonra cmd olarak kaydeder ipconfig.
  • ^uzun komutları daha okunaklı hale getirmek için kullanılır. [teşekkürler @ Steven]
  • Bunun bir paskalya yumurtası olduğunu düşündüm çünkü cmd'nin insan dilinde yanıt vermesini beklemiyordum.

  • Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
    Licensed under cc by-sa 3.0 with attribution required.