sherwood
Goto Top

Parameter beim Aufrufen einer Batch-Datei?

Hallo zusammen

Ich möchte gerne eine Batch-Datei mit PHP ausführen.

Dies löse ich zurzeit ganz simpel, mit folgendem Befehl:

$pfad = "C:\\temp\my\ordner\test.bat";  
exec($pfad, $output, $return);

Grundsätzlich funktioniert dies wunderbar.
Mein Problem jedoch; der Befehl welchen ich mit dem Batch ausführen möchte benötigt eine Passworteingabe.
Das Passwort kann ich natürlich auch in der Batch-Datei selbst definieren. Viel besser wäre es jedoch, wenn es vom User selbst beim Aufrufen angegeben werden könnte.

Meine Frage: Ist es möglich, dass ich beim Aufrufen der Batch-Datei irgendwelche Parameter übergeben kann?
So könnte ich das Passwort mit PHP abfragen bzw. überprüfen und anschliessen der Batch-Datei übergeben damit diese den Befehl ausführen kann..

Oder: Kennt jemand eine andere Lösung dafür?

Mit freundlichen Grüssen
Sherwood
Kommentar vom Moderator Biber am Dec 08, 2009 um 17:47:50 Uhr
Grundsätzlich funktioniert dies wunderbar.
Oh, wie ich diese Einleitung liebe.
Den nächsten Satz höre ich dann schon immer kommen bevor ich ihn sehe. .. face-wink

Content-Key: 131221

Url: https://administrator.de/contentid/131221

Printed on: April 19, 2024 at 23:04 o'clock

Member: Snowman25
Snowman25 Dec 08, 2009 at 13:34:12 (UTC)
Goto Top
Probier mal, deine Parameter einfach an die Pfad-variable dran zu hängen. Natürlich mit einem Leerzeichen dazwischen, also so:
$pfad = "C:\\temp\my\ordner";  
$params = " passwort";  
$pfad = $pfad.$passwort;
exec($pfad, $output, $return);

Achte auf die Leerzeichen und Anführungsstriche!
Member: Sherwood
Sherwood Dec 08, 2009 at 13:45:58 (UTC)
Goto Top
Danke schonmal für die Hilfe!

Also ich mache jetzt folgendes:

$pfad = "C:\\xampplite\htdocs\test\start.bat password";  
exec($pfad, $output, $return);

Bei diesem Aufruf ändert sich grundsätzlich nichts. Da jedoch keine Fehlermeldung erscheint und das Starten der Batch-Datei ansich immer noch funktioniert kann dies meiner Meinnung nach nicht der falsche weg seinface-smile

Muss ich diesen Parameter nun irgendwie abfangen in der Batch-Datei ? Oder sollte dies nun gleich funktionieren?
Member: Snowman25
Snowman25 Dec 08, 2009 at 13:51:40 (UTC)
Goto Top
natürlich musst du in der batch den aufrufparameter %1 irgendwie verarbeiten, also dort einbringen, wo es nötig ist.
Am besten, du postest einfach mal den ausschnitt, in dem du das PW brauchst
Member: Sherwood
Sherwood Dec 08, 2009 at 14:04:39 (UTC)
Goto Top
meinst du so?:

(der Parameter -p ist für das Passwort)
psservice \\gfp000475PC -u dom\dom01692 -p %1 start "HTTP SSL"  
Member: Sherwood
Sherwood Dec 08, 2009 at 14:06:53 (UTC)
Goto Top
Ja wunderbar habs gleich ausprobier und hat funktioniert! :D

Vielen Dank für die Hilfe!

So sind auch mehere Parameter möglich oder?
Member: Snowman25
Snowman25 Dec 08, 2009 at 14:54:23 (UTC)
Goto Top
ja, der 2. Parameter heißt dann sinngemäß %2
Das geht bis 9 Parameter also %9.
Einzelne Bausteine, die ein Leerzeichen enthalten, solltest du in Anführungszeichen stecken, aber das versteht sich ja von selbst face-wink