web-dev-qa-db-fra.com

Taper% ^ dans cmd.exe est-il un œuf de Pâques Windows?

Quand j'ai tapé %^ dans cmd et appuyé sur Enteret il disait:

More?

Quand j'ai appuyé Enter encore une fois, il a donné la même réponse.

Est-ce un oeuf de Pâques? Qu'est-ce que c'est?

78
rahuldottech

CMD est basé sur les lignes. Il ne lit et n’exécute qu’une ligne à la fois. Lorsque vous tapez et que vous n'avez pas terminé une ligne, le message suivant s'affiche avec More?.

Votre particularité est qu’il n’ya pas de fin de ligne, il attend donc de voir ce qui suit le signe %.

Il est plus facile de voir en utilisant des crochets

Essayez dir

puis

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

Ce n'est que lorsque la ligne est complète (parenthèses correspondantes) qu'elle est lue et exécutée.

Voici une liste de ponctuation.

&    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

Non.

Microsoft a officiellement arrêté d’inclure les œufs de Pâques dans ses programmes dans le cadre de son initiative pour l’informatique de confiance en 2002.
http://en.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products

Larry Osterman a noté en octobre 2005 que l'ajout d'un œuf de Pâques était un motif de licenciement.

De nos jours, l'ajout d'un oeuf de Pâques à un système d'exploitation Microsoft constitue un motif immédiat de résiliation. Il est donc très peu probable que vous en voyiez un autre.

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

La commande Invite recherche une continuation (More?) de la commande, car elle s'est terminée par le caractère d'échappement ^.

Le caractère ^ d'échappement peut être utilisé pour rendre les commandes longues plus lisibles en les divisant en plusieurs lignes et en échappant au retour à la ligne + saut de ligne (CR/LF) à la fin d'une ligne.
http://ss64.com/nt/syntax-esc.html

112
Steven

C’est simple, c’est ce que j’ai recueilli de toutes les autres réponses et commentaires (et de certains de mes propres commentaires):

  • Microsoft n'inclut pas les œufs de Pâques et ce n'en est pas un.
    • Même en tapant simplement ^ donne la même réponse.
    • ^ est utilisé pour terminer les commandes incomplètes: [merci @ n00b]
      C:\windows\system32>net ^
      More? user
      
      User accounts for \\INFINITEPC
      
      -------------------------------------------------------------------------------
      Administrator            Guest                    Rahul
      The command completed successfully.
      
    • Donc, fondamentalement, si vous tapez ip^ et appuyez sur Entrée, puis tapez config, puis cmd l'enregistre en tant que ipconfig.
    • ^ est utilisé pour rendre les longues commandes plus lisibles. [merci @Steven]
    • Je pensais que c'était un oeuf de Pâques parce que je ne m'attendais pas à ce que cmd réponde en langage humain
  • 7
    rahuldottech