Si sta digitando% ^ in cmd.exe un uovo di Pasqua di Windows?


77

Quando ho digitato %^ in cmd e premuto accedere e ha detto:

More?

Quando ho premuto accedere di nuovo, ha dato la stessa risposta.

E 'un uovo di Pasqua? Cos'è questo?


11
Dovresti aver premuto Invio un'altra volta, quindi cercare su "cmd carat" :)
panhandel

5
digita "ip ^" [invio] "config" [invio] ... senza qoutes. ora capisci cosa ^ fa.
n00b

6
Che dire di questo comportamento ti fa pensare che sia un uovo di Pasqua?
jamesdlin

1
Sto indovinando perché More è abbastanza diverso da quello che normalmente ti aspetteresti. (Normalmente penseresti che direbbe solo non valido /)
Evan Carslake

Risposte:


47

CMD è basato sulla linea. Legge e esegue solo una riga alla volta. Quando si digita e non si è terminata una riga, viene richiesto More?.

La tua cosa specifica è che non c'è una fine di linea quindi è in attesa di vedere cosa viene dopo % cartello.

È più facile vedere le parentesi

Provare dir

poi

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

Solo quando la riga è completa (parentesi corrispondenti) viene letta ed eseguita.

Ecco una lista di punteggiatura.

&    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


.
--

3
Dove hai trovato questo elenco di punteggiatura?
Steven

4
L'ho scritto io stesso. I riferimenti sono MSDos 6.22 Help File, Windows Vista Command Help (es dir /? ) e il kit di sviluppo software di Windows.
trigger

1
Plus MS ha usato per avere questo per il download gratuito, non appare più. Capitolo 2 da Windows NT Shell Scripting, pubblicato da MacMillan Technical Publishing (l'ho messo sulla mia skydrive in skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 )
trigger

'(' e ')' sono parentesi; le parentesi sono generalmente considerate '[]' (parentesi quadre) o '& lt; & gt;' (parentesi angolari).
toddkaufmann

7
@toddkaufmann "Brackets" può anche riferirsi a (e). È un uso comune della parola al di fuori degli Stati Uniti, vedi englishclub.com/writing/punctuation-round-brackets.htm per esempio.
hvd

111

No.

Microsoft ha formalmente smesso di includere uova di Pasqua nei suoi programmi come parte della sua Trustworthy Computing Initiative nel 2002.
http://en.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products

Larry Osterman ha notato nell'ottobre 2005 che aggiungere un uovo di Pasqua è motivo di risoluzione.

Oggigiorno, aggiungere un uovo di Pasqua a un sistema operativo Microsoft è un motivo immediato   per la risoluzione, quindi è altamente improbabile che ne vedrai mai un'altra.

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

Il prompt dei comandi sta cercando una continuazione ( More? ) del comando, poiché terminava con il carattere di escape ^.

Il carattere ^ escape può essere usato per rendere più leggibili i comandi lunghi   dividendoli in più righe e sfuggendo al ritorno a capo   + Avanzamento riga (CR / LF) alla fine di una riga
http://ss64.com/nt/syntax-esc.html


30
Si sono liberati di tutte le future uova di Pasqua per aumentare l'affidabilità? Come suppongono che funzioni?
Panzercrisis

27
@Panzercrisis Perché nessuna uova di Pasqua? blogs.msdn.com/b/larryosterman/archive/2005/10/21/483608.aspx
Steven

12
Perché richiede di più? una seconda volta se non metti niente in risposta al primo?
Random832

2
@ AlecTeal Sì, ma per farlo devo continuare a mettere ^ alla fine di ogni riga. Se scrivo qualcosa (con no ^ ) al primo More? prompt, viene eseguito immediatamente, ma se solo inserisco, richiede More? ancora. EDIT: Ho fatto qualche ulteriore test con eco che rivela che entrare in una riga vuota al More? prompt inserisce un letterale CR / LF nella riga di comando. Non so perché non l'ho incontrato ieri.
Random832

2
La sua Trustworthy Computing Initiative ha prevenuto comportamenti non documentati, ma non l'hanno mai impedito documentata uova di Pasqua ;)
Derek 朕會功夫

6

Semplicemente, Da tutte le altre risposte e commenti (e alcuni input personali) questo è quello che ho raccolto:

  • Microsoft non include le uova di Pasqua e questo non è uno.
  • Anche digitando solo ^ dà la stessa risposta.
  • ^ è usato per finire comandi incompleti: [grazie @ n00b]
    C:\windows\system32>net ^
    More? user
    
    User accounts for \\INFINITEPC
    
    -------------------------------------------------------------------------------
    Administrator            Guest                    Rahul
    The command completed successfully.
    

  • Quindi in pratica se si digita ip^ e premere Invio e quindi digitare config quindi cmd lo registra come ipconfig.
  • ^ è usato per rendere più leggibili i comandi lunghi. [grazie @Steven]
  • Ho pensato che fosse un uovo di Pasqua perché non mi aspettavo che cmd rispondesse in una lingua umana
  • Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
    Licensed under cc by-sa 3.0 with attribution required.