Muss ich in einer Batch-Datei (z. B.) Folgendes tun?
@echo off
call other.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
windows
scripting
batch-file
Roger Lipscombe
quelle
quelle
Antworten:
Windows-Batchdateien (seit Windows XP, möglicherweise jedoch früher) unterstützen das
%*
Konstrukt, das ab% 1 alle Parameter auswertet.Leider wird der
SHIFT
Befehl dadurch nicht berücksichtigt , sodass Folgendes nicht funktioniert:Der erste Parameter wird weiterhin an die zweite Batchdatei übergeben.
quelle
%*
Erhält Leerzeichen / Anführungszeichen.Sie können alle Argumente zusammenfassen, indem Sie Folgendes verwenden:
Dies funktioniert unabhängig davon, wie viele Argumente es gibt.
quelle
Wenn Sie beispielsweise die ersten drei Parameter überspringen und den Rest weitergeben möchten:
Möglicherweise treten Probleme mit Anführungszeichen in Parametern auf.
Ein großes Lob an Patrick Cuff, /programming/382587/how-to-get-batch-file-parameters-from-nth-position-on
quelle
Ja, das tun sie.
Sie können Ihr Beispiel wie folgt schreiben:
Außerdem: Shift wird unter Windows unterstützt ... Siehe hier .
In der Tat bestätigt dieser letzte Link, dass die Verschiebung in Kombination mit% * nicht funktioniert:
quelle
quelle
call other.bat
mit den angegebenen Parametern? (( Wo schreibe ich "other.bat"? Ist es möglich, "Parameterindex (e) zum Extrahieren zu entfernen? "Abfrage? Wird auchcls
in der endgültigen Lösung nicht benötigt.