Sie hätten noch einmal die Eingabetaste drücken und dann stattdessen "cmd carat" googeln sollen :)
panhandel
6
tippe "ip ^" [enter] "config" [enter] ... ohne die qoutes. Jetzt verstehst du, was ich tue.
n00b
7
Was ist mit diesem Verhalten, dass Sie denken, dass es ein Osterei ist?
Jamesdlin
1
Ich vermute, weil Morees anders ist, als Sie es normalerweise erwarten würden. (Normalerweise würden Sie denken, es würde nur ungültig / sagen)
Evan Carslake
Antworten:
50
CMD ist zeilenbasiert. Es wird jeweils nur eine Zeile gelesen und ausgeführt. Wenn Sie tippen und eine Zeile noch nicht beendet haben, werden Sie dazu aufgefordert More?.
Ihre spezifische Sache ist, dass es kein Zeilenende gibt, also wartet es darauf zu sehen, was nach dem %Zeichen kommt.
Die Verwendung von Klammern ist einfacher zu erkennen
Versuchen dir
dann
(dir
echo %time%
(type c:\windows\win.ini
)
)
Erst wenn die Zeile vollständig ist (passende Klammern), wird sie gelesen und ausgeführt.
Hier ist eine Liste mit Satzzeichen.
& 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
.
--
Ich habe es selbst geschrieben. Referenzen sind die MSDos 6.22-Hilfedatei, die Windows Vista-Befehlshilfe (z. B. dir /?) und das Windows Software Developent Kit.
Auslöser
1
Plus MS verwendet, um diese zum kostenlosen Download haben, erscheint nicht mehr. Kapitel 2 aus Windows NT Shell Scripting, veröffentlicht von MacMillan Technical Publishing (ich habe es auf meinem skydrive unter skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 veröffentlicht )
Trigger
'(' und ')' sind Klammern; Klammern werden normalerweise als '[]' (eckige Klammern) oder '<>' (spitze Klammern) betrachtet.
Larry Osterman stellte im Oktober 2005 fest, dass das Hinzufügen eines Ostereies ein Grund für die Kündigung ist.
Heutzutage ist das Hinzufügen eines Ostereies zu einem Microsoft-Betriebssystem ein sofortiger Grund für die Kündigung. Daher ist es sehr unwahrscheinlich, dass Sie jemals ein anderes finden werden.
Die Eingabeaufforderung sucht nach einer Fortsetzung ( More?) des Befehls, da sie mit dem Escape-Zeichen endet ^.
Das ^ Escape-Zeichen kann verwendet werden, um lange Befehle lesbarer zu machen, indem sie in mehrere Zeilen aufgeteilt werden und der Zeilenumbruch + Zeilenvorschub (CR / LF) am Ende einer Zeile maskiert wird. Http://ss64.com/nt/syntax- esc.html
Warum fordert es More auf? ein zweites Mal, wenn Sie auf das erste Mal nichts erwidern?
Random832
2
@AlecTeal Ja, aber um das zu tun, muss ich immer ^am Ende jeder Zeile stehen. Wenn ich ^an der ersten More?Eingabeaufforderung etwas (mit Nein ) eingebe, wird es sofort ausgeführt, aber wenn ich es nur eingebe, wird es More?erneut aufgefordert . BEARBEITEN: Ich habe einige weitere Tests mit Echo durchgeführt, bei denen sich herausstellt, dass die Eingabe einer leeren Zeile an der More?Eingabeaufforderung ein CR / LF-Literal in die Befehlszeile einfügt. Ich weiß nicht, warum ich gestern nicht darauf gestoßen bin.
Random832
2
Seine Trustworthy Computing Initiative verhinderte undokumentiertes Verhalten, aber sie verhinderte nie dokumentierte Ostereier;)
Derek 朕 會 功夫
7
Wirklich einfach. Aus all den anderen Antworten und Kommentaren (und einigen meiner eigenen Eingaben) habe ich Folgendes zusammengetragen:
Microsoft enthält keine Ostereier und dies ist keines.
Sogar das Tippen ^gibt nur die gleiche Antwort.
^ wird verwendet, um unvollständige Befehle zu beenden: [danke @ n00b]
C:\windows\system32>net ^
More? user
User accounts for \\INFINITEPC
-------------------------------------------------------------------------------
Administrator Guest Rahul
The command completed successfully.
Wenn Sie also ip^eingeben und die Eingabetaste drücken und dann eingeben, configregistriert cmd dies als ipconfig.
^wird verwendet, um lange Befehle lesbarer zu machen. [danke @Steven]
Ich dachte, das ist ein Osterei, weil ich nicht erwartet habe, dass cmd in einer menschlichen Sprache antwortet
More
es anders ist, als Sie es normalerweise erwarten würden. (Normalerweise würden Sie denken, es würde nur ungültig / sagen)Antworten:
CMD ist zeilenbasiert. Es wird jeweils nur eine Zeile gelesen und ausgeführt. Wenn Sie tippen und eine Zeile noch nicht beendet haben, werden Sie dazu aufgefordert
More?
.Ihre spezifische Sache ist, dass es kein Zeilenende gibt, also wartet es darauf zu sehen, was nach dem
%
Zeichen kommt.Die Verwendung von Klammern ist einfacher zu erkennen
Versuchen
dir
dann
Erst wenn die Zeile vollständig ist (passende Klammern), wird sie gelesen und ausgeführt.
Hier ist eine Liste mit Satzzeichen.
quelle
dir /?
) und das Windows Software Developent Kit.Nein.
Larry Osterman stellte im Oktober 2005 fest, dass das Hinzufügen eines Ostereies ein Grund für die Kündigung ist.
http://blogs.msdn.com/b/larryosterman/archive/2005/10/20/483110.aspx
Die Eingabeaufforderung sucht nach einer Fortsetzung (
More?
) des Befehls, da sie mit dem Escape-Zeichen endet^
.quelle
^
am Ende jeder Zeile stehen. Wenn ich^
an der erstenMore?
Eingabeaufforderung etwas (mit Nein ) eingebe, wird es sofort ausgeführt, aber wenn ich es nur eingebe, wird esMore?
erneut aufgefordert . BEARBEITEN: Ich habe einige weitere Tests mit Echo durchgeführt, bei denen sich herausstellt, dass die Eingabe einer leeren Zeile an derMore?
Eingabeaufforderung ein CR / LF-Literal in die Befehlszeile einfügt. Ich weiß nicht, warum ich gestern nicht darauf gestoßen bin.Wirklich einfach. Aus all den anderen Antworten und Kommentaren (und einigen meiner eigenen Eingaben) habe ich Folgendes zusammengetragen:
^
gibt nur die gleiche Antwort.^
wird verwendet, um unvollständige Befehle zu beenden: [danke @ n00b]ip^
eingeben und die Eingabetaste drücken und dann eingeben,config
registriert cmd dies alsipconfig
.^
wird verwendet, um lange Befehle lesbarer zu machen. [danke @Steven]quelle