Vous auriez dû appuyer sur Entrée une fois de plus, puis googlé "cmd carat" à la place :)
Panhandel
6
tapez "ip ^" [enter] "config" [enter] ... sans les qoutes. maintenant vous comprenez ce que ^ fait.
n00b
7
Qu'en est-il de ce comportement qui vous fait penser que c'est un œuf de Pâques?
Jamesdlin
1
Je devine parce que Moreest assez différent de ce que vous attendez normalement. (Normalement, on pourrait penser que cela dirait simplement invalide /)
Evan Carslake
Réponses:
50
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, il vous invite à le faire More?.
Votre particularité est qu’il n’ya pas de fin de ligne et attend donc de voir ce qui vient après le %panneau.
Il est plus facile de voir en utilisant des crochets
Essayer dir
ensuite
(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
.
--
Je l'ai écrit moi-même. Les références sont le fichier d’aide MSDos 6.22, l’aide de la commande Windows Vista (c.-à-d. dir /?) Et le kit de développement de logiciel Windows.
déclenchement
1
De plus, MS avait auparavant ce téléchargement gratuit, n'apparaît plus. Chapitre 2 de Windows NT Shell Scripting, publié par MacMillan Technical Publishing (je l'ai mis sur mon skydrive à l' adresse skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 )
déclencheur
'(' et ')' sont des parenthèses; les crochets sont généralement considérés comme '[]' (crochets) ou '<>' (crochets angulaires).
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 œuf 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.
L'invite de commande 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 séparant en plusieurs lignes et en évitant le retour à la ligne + saut de ligne (CR / LF) à la fin d'une ligne http://ss64.com/nt/syntax- esc.html
Pourquoi invite-t-il More? une deuxième fois si vous ne mettez rien en réponse à la première?
Random832
2
@AlecTeal Oui, mais pour ce faire, je dois continuer à mettre ^à la fin de chaque ligne. Si je tape quelque chose (avec non ^) à la première More?invite, il s'exécute immédiatement, mais si je viens d'entrer, il invite à More?nouveau. EDIT: J'ai effectué quelques tests supplémentaires avec écho, qui ont révélé qu'entrer une ligne vide à l' More?invite mettait un CR / LF littéral dans la ligne de commande. Je ne sais pas pourquoi je ne suis pas tombé dessus hier.
Random832
2
Son initiative de confiance en informatique a empêché les comportements non documentés, mais ils n'ont jamais empêché les œufs de Pâques documentés ;)
Derek 會 功夫
7
C’est simple, c’est ce que j’ai recueilli de toutes les autres réponses et commentaires (et de certaines de mes contributions):
Microsoft n'inclut pas les œufs de Pâques et ce n'en est pas un.
Même en tapant ^donne juste 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, configpuis cmd l'enregistre comme 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
More
est assez différent de ce que vous attendez normalement. (Normalement, on pourrait penser que cela dirait simplement invalide /)Réponses:
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, il vous invite à le faire
More?
.Votre particularité est qu’il n’ya pas de fin de ligne et attend donc de voir ce qui vient après le
%
panneau.Il est plus facile de voir en utilisant des crochets
Essayer
dir
ensuite
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.
la source
dir /?
) Et le kit de développement de logiciel Windows.Non.
Larry Osterman a noté en octobre 2005 que l'ajout d'un œuf de Pâques était un motif de licenciement.
http://blogs.msdn.com/b/larryosterman/archive/2005/10/20/483110.aspx
L'invite de commande recherche une continuation (
More?
) de la commande, car elle s'est terminée par le caractère d'échappement^
.la source
^
à la fin de chaque ligne. Si je tape quelque chose (avec non^
) à la premièreMore?
invite, il s'exécute immédiatement, mais si je viens d'entrer, il invite àMore?
nouveau. EDIT: J'ai effectué quelques tests supplémentaires avec écho, qui ont révélé qu'entrer une ligne vide à l'More?
invite mettait un CR / LF littéral dans la ligne de commande. Je ne sais pas pourquoi je ne suis pas tombé dessus hier.C’est simple, c’est ce que j’ai recueilli de toutes les autres réponses et commentaires (et de certaines de mes contributions):
^
donne juste la même réponse.^
est utilisé pour terminer les commandes incomplètes: [merci @ n00b]ip^
et appuyez sur Entrée puis tapez,config
puis cmd l'enregistre commeipconfig
.^
est utilisé pour rendre les longues commandes plus lisibles. [merci @Steven]la source