Debería haber presionado enter una vez más, y luego buscó en Google "cmd quilate" en su lugar :)
panhandel
66
escriba "ip ^" [enter] "config" [enter] ... sin las qoutes. ahora entiendes lo que ^ hace.
n00b
77
¿Qué pasa con este comportamiento que te hace pensar que es un huevo de pascua?
jamesdlin
1
Supongo que Morees lo suficientemente diferente de lo que normalmente esperarías. (Normalmente pensarías que solo diría inválido /)
Evan Carslake
Respuestas:
50
CMD está basado en líneas. Solo lee y ejecuta una línea a la vez. Cuando está escribiendo y no ha terminado una línea, aparece More?.
Lo específico es que no hay final de línea, por lo que está esperando ver qué viene después del %letrero.
Es más fácil de ver usando paréntesis
Tratar dir
entonces
(dir
echo %time%
(type c:\windows\win.ini
)
)
Solo cuando la línea está completa (corchetes coincidentes) se lee y ejecuta.
Aquí hay una lista de puntuación.
& 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
.
--
Lo escribí yo mismo. Las referencias son MSDos 6.22 Help File, Windows Vista command help (ie dir /?) y Windows Software Developent Kit.
disparador
1
Además, MS solía tener esto para descarga gratuita, ya no aparece. Capítulo 2 de Windows NT Shell Scripting, publicado por MacMillan Technical Publishing (lo publiqué en mi skydrive en skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 )
activador
'(' y ')' son paréntesis; los corchetes generalmente se consideran '[]' (corchetes) o '<>' (corchetes angulares).
Larry Osterman señaló en octubre de 2005 que agregar un huevo de Pascua es motivo de terminación.
Hoy en día, agregar un huevo de Pascua a un sistema operativo de Microsoft es motivo inmediato para la terminación, por lo que es muy poco probable que alguna vez veas otro.
El símbolo del sistema está buscando una continuación ( More?) del comando, ya que terminó con el carácter de escape ^.
El carácter ^ escape se puede usar para hacer que los comandos largos sean más legibles al dividirlos en varias líneas y escapar del retorno de carro + avance de línea (CR / LF) al final de una línea http://ss64.com/nt/syntax- esc.html
¿Por qué solicita más? una segunda vez si no pones nada en respuesta a la primera?
Random832
2
@AlecTeal Sí, pero para hacerlo tengo que seguir poniendo ^al final de cada línea. Si escribo algo (sin ^) en el primer More?mensaje, se ejecuta de inmediato, pero si solo ingreso, vuelve a More?aparecer. EDITAR: He realizado algunas pruebas adicionales con echo que revela que ingresar una línea en blanco en el More?indicador coloca un CR / LF literal en la línea de comando. No sé por qué no me encontré con eso ayer.
Random832
2
Su Iniciativa de Computación Confiable impidió comportamientos indocumentados, pero nunca impidieron los huevos de pascua documentados ;)
Derek 朕 會 功夫
7
Realmente simple, de todas las otras respuestas y comentarios (y algunas entradas propias) esto es lo que reuní:
Microsoft no incluye los huevos de Pascua y este no es uno.
Incluso escribir simplemente ^da la misma respuesta.
^ se usa para terminar comandos incompletos: [gracias @ n00b]
C:\windows\system32>net ^
More? user
User accounts for \\INFINITEPC
-------------------------------------------------------------------------------
Administrator Guest Rahul
The command completed successfully.
Básicamente, si escribe ip^y presiona enter y luego escribe config, cmd lo registra como ipconfig.
^se usa para hacer que los comandos largos sean más legibles. [gracias @ Steven]
Pensé que este es un huevo de pascua porque no esperaba que cmd respondiera en un lenguaje humano
More
es lo suficientemente diferente de lo que normalmente esperarías. (Normalmente pensarías que solo diría inválido /)Respuestas:
CMD está basado en líneas. Solo lee y ejecuta una línea a la vez. Cuando está escribiendo y no ha terminado una línea, aparece
More?
.Lo específico es que no hay final de línea, por lo que está esperando ver qué viene después del
%
letrero.Es más fácil de ver usando paréntesis
Tratar
dir
entonces
Solo cuando la línea está completa (corchetes coincidentes) se lee y ejecuta.
Aquí hay una lista de puntuación.
fuente
dir /?
) y Windows Software Developent Kit.No.
Larry Osterman señaló en octubre de 2005 que agregar un huevo de Pascua es motivo de terminación.
http://blogs.msdn.com/b/larryosterman/archive/2005/10/20/483110.aspx
El símbolo del sistema está buscando una continuación (
More?
) del comando, ya que terminó con el carácter de escape^
.fuente
^
al final de cada línea. Si escribo algo (sin^
) en el primerMore?
mensaje, se ejecuta de inmediato, pero si solo ingreso, vuelve aMore?
aparecer. EDITAR: He realizado algunas pruebas adicionales con echo que revela que ingresar una línea en blanco en elMore?
indicador coloca un CR / LF literal en la línea de comando. No sé por qué no me encontré con eso ayer.Realmente simple, de todas las otras respuestas y comentarios (y algunas entradas propias) esto es lo que reuní:
^
da la misma respuesta.^
se usa para terminar comandos incompletos: [gracias @ n00b]ip^
y presiona enter y luego escribeconfig
, cmd lo registra comoipconfig
.^
se usa para hacer que los comandos largos sean más legibles. [gracias @ Steven]fuente