PHP "system"-> .bat Datei anwerfen

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von ikemi, 25.10.2006.

  1. ikemi

    ikemi Foren As

    Dabei seit:
    28.01.2006
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Steiermark nähe Graz
    Hallo,

    ich versuche über eine PHP Seite, eine .bat Datei auf einem Server anzuwerfen. Nach Tagelangen "googlen" habe ich es auch geschafft, aber leider ist die Lösung sehr, sehr unschön...
    (Von PHP habe ich leider nicht viel Plan...)

    Zuerst wollte ich das unter Samba und Linux realisieren (Thread gab es unter SAMBA) ist aber aus IT Richtlinien in unserem Unternehmen, leider nicht möglich.

    Ich möchte eine Seite erstellen, über die ich Druckjobs absenden kann. Ich habe immer wieder spezielle Drucker zu konfigurieren und benötige dadurch immer wieder Testdrucke. In der nähe der Drucker stehen lediglich Clients die keine Remote Verbindungen, Commandlines etc. zu z.b Terminalservern o.ä zulassen. Das heißt, das wenn ich so einen Testdruck benötige, muss ich zu mir ins Büro gehen, einen Job absenden und wieder zu dem Drucker. Das kann leicht in einen Marathon enden, denn die Drucker stehen teilweise hunderte Meter weit weg...

    Übrigens: Bei den Testdrucken handelt es sich um speziell konvertierte .txt Files- also die Möglichkeit "Windows Testseite" ausdrucken, ist nicht ;-)

    Ich möchte nun über einen Button "Druckername" diese File anwerfen, was ich nicht auf die reihe bringe, denn wenn ich den PHP Code in die Website selbst schreibe, wirft er beim Seitenladen, das .bat an, was bei ca. 30 Druckern recht Dumm ist.

    Code:
    <td><form action="carina.php" method="post" name="carina" target="_blank" id="carina">
                  <input type="submit" name="Submit" value="Abschicken">
                </form></td>
    Jetzt mache ich es über den oben genannten Link, der eine weiterer Website (carina.php) aufruft:

    PHP:
    <?php
     system 
    ("C:\\pickerl\\carina\\carina.bat");
    ?>
    In der .bat steht:
    Code:
    copy c:\pickerl\carina\carina.txt \\printserver\carina
    Ist es möglich:

    die Webseite so zu gestalten, das ich keine weitere Seite aufmachen muss, sondern es reicht, das ich den Button "Druckername" klicke?

    Vielleicht auch noch ein Feedback bekomme alá "Druckjob wurde an Drucker gesendet" einbauen kann?

    lg, Ikemi
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Irgendwie habe ich das Gefühl, dass du die Rubrik hier etwas missverstanden hast.
    Code:
    Unixboard.de > Programmieren unter Linux/Unix > Ruby, php, Perl, Python ...
    
    Aber wir wollen mal nicht so sein: Theoretisch ist das Möglich, indem du deine bat-Datei so schreibst, dass sie einen richtigen Return-Wert zurückgibt (falls das bei Windows geht, bei Shell-Scripten im Linux/Unix wäre es halt ein 'exit <Nummer>' und du dann '$ret = exec("/ich/habs/nicht/so/mit/windows/pfaden")' nutzt. Dann kannst du nach diesem exec() aufgrund der Rückgabe des Skripts herausfinden, ob alles korrekt gelaufen ist. Dazu müsstest du natürlich die bat-Datei so schreiben, dass sie die Fehler von 'copy' abfängt und entsprechende Rückgaben liefert. Weiss allerdings nicht, inwiefern Win-Batchdateien dazu in der Lage sind, aber M$ hat da bestimmt irgendwo 'ne Referenz für.
     
  4. ikemi

    ikemi Foren As

    Dabei seit:
    28.01.2006
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Steiermark nähe Graz
    Ups, ja! Diese "Kleinigkeit" habe ich übersehen.

    THX!
     
  5. #4 madhatter, 29.10.2006
    madhatter

    madhatter Verrückter Hutmacher

    Dabei seit:
    19.03.2004
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    Baden-Württemberg
    So, wie ich das verstanden hatte, will er keinen Feedback von der
    Batch-Datei sondern vom PHP Skript.
    Also wenn ich alles richtig verstanden hab:
    Du musst, wenn du den Code auf der gleichen Seite auf der
    auch dein Button ist hast, überprüfen ob die Seite durch den
    Button aufgerufen wurde oder nicht.
    Das kannst du z.B. so tun
    Code:
    if ($_POST['Submit'])
    {
     system ("C:\\pickerl\\carina\\carina.bat");
     // Und so geht das Feedback:
     echo "Druckjob wurde an Drucker gesendet";
    }
    
     
  6. ikemi

    ikemi Foren As

    Dabei seit:
    28.01.2006
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Steiermark nähe Graz
    Ja, genau! Vielen Dank für deine Antwort. Ich wollte nur den OT Thread nicht weiter in die länge ziehen ;-)
     
  7. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Der Weg über system() hat halt den Nachteil, dass du nicht heraus bekommst, ob der Druckjob wirklich korrekt gesendet wurde. Also wird deine Seite auch wenn der Druckjob nicht gesendet wurde, "Druckjob wurde an Drucker gesendet" ausgeben. Halte ich persönlich für eine ziemlich unsinnige Lösung.
     
  8. #7 ikemi, 03.11.2006
    Zuletzt bearbeitet: 03.11.2006
    ikemi

    ikemi Foren As

    Dabei seit:
    28.01.2006
    Beiträge:
    94
    Zustimmungen:
    0
    Ort:
    Steiermark nähe Graz
    Bei uns in der Produktion steht in 90% der fälle einer dieser Drucker neben einem Client, von dem ich aus das Script starten kann und sehe dann ob es funktioniert. Sicherlich ist es keine genaue Lösung, aber eine kleine Arbeitserleichterung für mich.

    Hatte gerade so einen Einsatz...

    Als Ausgabe bekomme ich ohne zutun:

    C:\Programme\xampp\htdocs>copy c:\pickerl\carina\carina.txt \\z2ksv068\carina 1 Datei(en)

    Obs dann wirklich zum Drucker kommt nachzuvollziehen, wäre ein Programmiertechnischer Overkill, denn bei uns läuft gerade bei diesen Druckern so viel Mist im Hintergrund von diversen Printjobs, Konvertierungen, Datenbankabfragen etc. das wenn mal gar nichts rauskommt, man schon eine weile mit der Verfolgung eines Jobs verbringen kann.

    lg, Ikemi
     
Thema:

PHP "system"-> .bat Datei anwerfen

Die Seite wird geladen...

PHP "system"-> .bat Datei anwerfen - Ähnliche Themen

  1. Dateien selektieren und zählen

    Dateien selektieren und zählen: Hallo, das ist mein erster Beitrag, bitte entschuldigt, falls nicht alles richtig geschrieben ist. Ich muss meine erste Hausaufgabe als...
  2. Timestamp an Inhalt einer Textdatei anfügen

    Timestamp an Inhalt einer Textdatei anfügen: Hallo, ich als neuer, unerfahrener Nutzer von Linux und der bash hätte folgende Frage. Und zwar würde ich gerne mit einem command den Zeitstempel...
  3. Fuzzy-Test für Dateisysteme vorgestellt

    Fuzzy-Test für Dateisysteme vorgestellt: Entwickler bei Oracle haben einen Fuzzy-Tester auf einige Linux-Dateisystem-Implementierungen losgelassen. Dabei haben sie zahlreiche Fehler...
  4. Benötige Hilfe- Dateien vergleichen

    Benötige Hilfe- Dateien vergleichen: Hallo, für eine Arbeit an der Uni muss ich einige viele Bilder miteinander vergleichen, was ich gerne durch eine Automatisierung etwas...
  5. Amarok streikt bei *.m4a Dateien

    Amarok streikt bei *.m4a Dateien: Hallo zusammen, vor Kurzem habe ich einen neuen Rechner zusammengebaut und mit OpenSuse 13.2 aufgesetzt. Nun musste ich aber feststellen, dass...