2016-11-08 6 views
4

%1 ist der erste Befehlszeilenparameter, %2 ist der zweite Befehlszeilenparameter und so weiter bis %9.Kann%% verwendet werden, um einer Liste oder einem Array in einer Batch-Datei Werte zuzuordnen?

%* bezieht sich auf alle Argumente. Gibt es eine Möglichkeit, diese Werte einer Liste wie in einem Shell-Skript wie unten erwähnt zuzuordnen?

argv=("[email protected]") Dabei bezieht sich [email protected] auf alle Befehlszeilenargumente in einem Shell-Skript.

+0

Dies ist eine Windows-Gruppe. Warum post Unix-Code. Poste es auf Unix. In Windows verwenden wir den 'shift' Befehl. Wie werden Sie jemals einen Job bekommen, wenn Sie Windows nicht benutzen können? –

+1

@Noodles: Es ist durchaus zulässig, einen Vergleich mit Unix zu verwenden, um die anstehende Aufgabe zu veranschaulichen. Was ist dein Problem? – zb226

+0

Warum verschwenden Windows-Leute Zeit mit anderen Betriebssystemen. Wie würde ein Windows-Experte wissen, was Spielzeug-OS tun? –

Antwort

4

so etwas wie das? :

@echo off 

setlocal enableDelayedExpansion 
set arg_number=0 
for %%a in (%*) do (
    set "args[!arg_number!]=%%a" 
    set /a arg_number=arg_number+1 
) 

echo %args[0]% 
echo %args[1]% 
echo %args[2]% 
+0

Danke. Warum ist das args [! Arg_number!] = %% a in Anführungszeichen? – RRR

+0

Die doppelten Anführungszeichen sind nicht notwendig, lediglich Standardverfahren, um die Einbeziehung verborgener Zeichen wie Leerzeichen in den Variablenwert zu verhindern. – Compo

+0

@RRR, genauso wie es eine bewährte Methode ist, um Leerzeichen und Leerzeichen in Ihren Dateinamen und Dateipfaden anzugeben. Wenn Sie die SET-Befehle in Anführungszeichen setzen, können Sie auch den Inhalt Ihrer Variablen schützen. – Squashman

Verwandte Themen