2016-03-22 5 views
-1

Wenn ich etwas in CMD (zum Beispiel echo hallo) eintippe, muss es in eine Variable gesetzt werden, oder? Ich wollte wissen, was diese VARIABLE ist, um benutzerdefinierte Befehle einfacher zu machen (zum Beispiel, wenn ich einen benutzerdefinierten WAIT-Befehl mache). Was ist die VARIABLE für den CMD-Eingang? (Wie% CMDINPUT)CMD - Eingangsvariable?

+0

Nein, es gibt keine temporäre Variable, die die Befehlszeileneingabe enthält, bevor der Befehl analysiert und ausgeführt wird. – SomethingDark

+0

Lesen Sie 'doskey /?' Und http://ss64.com/nt/doskey.html. 'DOSKEY.exe': Rufen Sie Befehle an der Eingabeaufforderung' cmd' ab und bearbeiten Sie sie, und erstellen Sie Makros. Sie können ein Doskey-Makro nicht aus einer Batchdatei ausführen. – JosefZ

Antwort

0
%<number> (%1) the nth command line parameter passed to a batch file. %0 
is the batchfile's name. 

%* (%*) the entire command line. 

Von meinem Posten bei Trouble with renaming folders and sub folders using Batch

und von set /?

%CMDCMDLINE% - expands to the original command line that invoked the 
Command Processor. 

Typ Auch help, shift /? (mehr als 10 Variablen zugreifen) und set /?.

Wenn Sie benutzerdefinierte Befehle erstellen, sehen Sie doskey /?.

+0

Wow, ich habe gerade erst über 'call' und die'% ' Befehle herausgefunden, aber wie würde ich prüfen, wieviele% 'Variablen es gibt? Ich möchte nicht, wenn definiert% 'Linien zu infinieren, und ich möchte auch nicht einen Parameter fehlen. – ETHANWEEGEE

+0

Sie müssen zählen und tun es selbst. 'Definiert' funktioniert jedoch nicht mit '% 1'. Der Befehl 'shift' ermöglicht es Ihnen, auf '% 1' zu schleifen (jeder Befehlsparameter wird bei jeder Ausgabe der Verschiebung um 1 niedriger). ': Loop' dann' If "% 1" = "" Echo Keine weiteren Parameter' dann 'shift' dann' goto loop'. Wenn Sie 'set count = count + 1' zählen wollen –