Perl Script aus Batchscript auführen unter Win 10



  • Hallo zusammen,

    ich habe eine Batch Skript, über das verschiedene Sachen kompiliert und einrichtet werden. Unteranderem rufe ich da ein Perl Skript auf. Das hat bisher unter Win 7 auch immer alles so funktioniert.
    Jetzt habe ich einen neuen Laptop bekommen mit Win 10 (jeah, Fortschritt :D). Hier, wird das Batch Skript nach dem Perl Skript beendet, obwohl es in dem Skript weiter gehen würde.

    Konkret wird ein Konfigurationsskript für OpenSSL aufgerufen, welches mit OpenSSL mitausgeliefert wird.
    Eigentlich sollte anschließend kompiliert werden, das passiert aber nicht. Die Konfiguration ist laut Ausgabe aber erfolgreich abgeschlossen wurde.

    Hat das Problem sonst schon einer Beobachten können und vlt sogar eine Lösung dafür?

    Es handelt sich um Perl 5, Version 34 für Windows.



  • Ist das "executable" von Perl vielleicht selbst ein Batch-File? In dem Fall würde call vor den Aufruf dranschreiben helfen.



  • @hustbaer Fantastisch... da hätte ich auch mal so nach gucken können.
    Jetzt kompiliert OpenSSL, dass heißt Kaffeepause für mich.



  • Ich verwendet StrawberryPerl für Windows. Das hat ne Echse 🙂
    (Und BTW: ich hab das auch nur installiert damit ich OpenSSL kompilieren kann. Ohne Not kommt mir kein Perl auf den Rechner.)



  • @hustbaer sagte in Perl Script aus Batchscript auführen unter Win 10:

    (Und BTW: ich hab das auch nur installiert damit ich OpenSSL kompilieren kann. Ohne Not kommt mir kein Perl auf den Rechner.)

    😢

    Ich habe immer gerne Perl geschrieben. Und nutze es für Einzeiler auf Kommandozeile auch heute noch oft.

    Letztes Anwendungsbeispiel war eine 20 GB große json-Datei. Konnte ich in Python mit der normalen json-Library nicht einlesen, weil RAM - auch pandas.read_json ging nicht. In Perl war es aber extrem einfach, die Datei zu parsen (es war eigentlich eine Tabelle gespeichert als List of Dict) und z.B. alle 100.000 Datensätze eine neue Datei rauszuschreiben. In keiner anderen Sprache hätte ich das so schnell lösen können. Danach konnte ich die Dateien einzeln einlesen und in DataFrame-Format hat dann auch alles zusammen locker in meine 16 GB RAM gepasst. [Eigentliche Frage: warum speichert man sowas als json und dann noch als List of Dict?! Als Dict mit Listen wäre die Datei WESENTLICH kleiner gewesen]



  • @wob sagte in Perl Script aus Batchscript auführen unter Win 10:

    Eigentliche Frage: warum speichert man sowas als json und dann noch als List of Dict?! Als Dict mit Listen wäre die Datei WESENTLICH kleiner gewesen

    List of Dict: weil das einfach die üblichere und meist auch praktischere Form ist Datensätze abzulegen. List of Dict kann man "streamen". Mit Dict of List kannst' dich brausen gehen wenn der RAM zu klein wird. Bzw. nen eigenen Parser zum Streamen schreiben der N File-Pointer für die N Spalten verwaltet.

    Besser wäre in dem Fall wohl List of List gewesen.

    Und noch besser vermutlich ne SQLite Datenbank o.Ä.


Anmelden zum Antworten