2 Stimmen

Verwendung eines Befehlszeilenparameters zur Eingabe in eine nachfolgende Eingabeaufforderung (Batch-Datei)

Ich verwende eine Batch-Datei, um bestimmte Vorgänge in meiner Anwendung auszuführen. Der Befehl, den ich verwende, nimmt das Kennwort nicht als Parameter an, sondern fragt es bei der Ausführung ab. Dies steht der Automatisierung dieses Skripts im Wege. Ich würde gerne wissen, wie ich das Kennwort als Parameter verwenden und der Anwendung zur Verfügung stellen kann, wenn sie dazu auffordert.

6voto

Frank Bollack Punkte 23412

Bezugnehmend auf Ihren Kommentar zu Johannes' Antwort müssen Sie den Aufruf von pg_dump zu etwas wie diesem:

echo %3|pg_dump -h %1 -U %2 %4 > %5

Das Problem ist, dass pg_dump es nicht erlaubt, das Passwort über stdin zu übergeben. Das bedeutet, dass diese Lösung hier nicht funktionieren wird.

Aber wie Sie in der Dokumentation lesen können ici y ici gibt es die (unsichere) Möglichkeit, das Passwort über eine Umgebungsvariable anzugeben PGPASSWORD .

Ändern Sie also einfach Ihre Batch-Datei wie folgt:

...
set PGPASSWORD=%3
pg_dump -h %1 -U %2 %4 > %5
...

CodeJaeger.com

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.

Powered by:

X