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 08.12.2009 um 18: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-ID: 131221

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

Ausgedruckt am: 13.11.2024 um 11:11 Uhr

Snowman25
Snowman25 08.12.2009 um 14:34:12 Uhr
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!
Sherwood
Sherwood 08.12.2009 um 14:45:58 Uhr
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?
Snowman25
Snowman25 08.12.2009 um 14:51:40 Uhr
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
Sherwood
Sherwood 08.12.2009 um 15:04:39 Uhr
Goto Top
meinst du so?:

(der Parameter -p ist für das Passwort)
psservice \\gfp000475PC -u dom\dom01692 -p %1 start "HTTP SSL"  
Sherwood
Sherwood 08.12.2009 um 15:06:53 Uhr
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?
Snowman25
Snowman25 08.12.2009 um 15:54:23 Uhr
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