Ich muss eine ID und ein Kennwort zum Zeitpunkt der Ausführung an eine Stapeldatei übergeben, anstatt sie fest in die Datei zu kodieren.
So sieht die Befehlszeile aus:
test.cmd admin P@55w0rd > test-log.txt
Ich muss eine ID und ein Kennwort zum Zeitpunkt der Ausführung an eine Stapeldatei übergeben, anstatt sie fest in die Datei zu kodieren.
So sieht die Befehlszeile aus:
test.cmd admin P@55w0rd > test-log.txt
Es ist noch schlimmer - %% wird als Präfix für Variablen und Befehlszeilenparameter verwendet innerhalb Batch-Dateien. Wenn Sie diese Befehle jedoch in der Befehlszeile verwenden, geben Sie nur % als Präfix an. Beispiel: innerhalb von Batch: for %%d in (*) do echo %%d
von der Kommandozeile aus: for %d in (*) do echo %d
@SteveMidgley Ich habe Ihren Kommentar schon vor einem Jahr oder so hochgestuft. Dann habe ich ihn prompt vergessen, und erst heute habe ich ihn ausprobiert und verwirrt auf meine for-Schleife in der Befehlszeile gestarrt und mich gefragt, warum sie furzt und sonst nichts tut. Hier ist also ein weiteres virtuelles Upvote von mir. Ich werde in einem Jahr oder so wiederkommen, wenn ich wieder auf das gleiche Problem stoße.
Es gibt keinen Grund, es zu komplizieren. Es ist einfach der Befehl %1 %2 Parameter, zum Beispiel,
@echo off
xcopy %1 %2 /D /E /C /Q /H /R /K /Y /Z
echo copied %1 to %2
pause
Die "Pause" zeigt an, was die Batch-Datei getan hat, und wartet darauf, dass Sie die ANY-Taste drücken. Speichern Sie die Datei unter dem Namen xx.bat im Windows-Ordner.
Geben Sie dazu zum Beispiel ein:
xx c:\f\30\*.* f:\sites\30
Diese Batch-Datei kümmert sich um alle notwendigen Parameter, wie z. B. das Kopieren nur von Dateien, die neuer sind, usw. Ich habe sie schon vor Windows benutzt. Wenn Sie die Namen der Dateien sehen wollen, während sie kopiert werden, lassen Sie das Q
Parameter.
Alle haben mit sehr komplexen Antworten geantwortet, aber eigentlich ist es ganz einfach. %1 %2 %3
und so weiter sind die Argumente, die in die Datei geparst werden. %1
ist Argument 1, %2
ist Argument 2 und so weiter.
Wenn ich also ein Bat-Skript habe, das dies enthält:
@echo off
echo %1
und wenn ich das Batch-Skript ausführe, gebe ich Folgendes ein:
C:> script.bat Hello
Das Skript gibt dies einfach aus:
Hello
Dies kann für bestimmte Variablen in einem Skript sehr nützlich sein, z. B. Name und Alter. Wenn ich also ein Skript wie dieses habe:
@echo off
echo Your name is: %1
echo Your age is: %2
Wenn ich dies eingebe:
C:> script.bat Oliver 1000
Ich erhalte die folgende Ausgabe:
Your name is: Oliver
Your age is: 1000
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
9 Stimmen
Zum "ganzen Rest" siehe den Kommentar von Greg Hegill unter Wie erhalte ich die Parameter einer Batchdatei ab der n-ten Position?
0 Stimmen
Ich habe ein Umgebungsstartskript, das meinen Benutzernamen und mein Passwort in Umgebungsvariablen überträgt, damit ich sie nicht jedes Mal neu eingeben muss... Ich benutze die meiste Zeit Bash (Linux, Mac und Windows), und muss es für Proxy-Konfigurationen in Skripten usw. für die Arbeit verwenden.