1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

[Java] führt nur die ersten 5 Zeilen einer .bat aus

Discussion in 'Programmieren' started by Me2andU2, Nov 15, 2008.

Thread Status:
Not open for further replies.
  1. Me2andU2

    Me2andU2 Byte

    Hallo PC-Welt,

    Ich hab folgenden Code geschrieben damit eine .bat Datei unter Java ausgeführt wird:



    import java.io.*;

    public class BatchRunner {
    public static void Ausführen(String Pfad){
    try{
    ProcessBuilder processBuilder = new ProcessBuilder(Pfad);
    Process process = processBuilder.start();
    }

    catch(Exception E){}
    }
    }



    Schwubsdiewubs, ich befehle:


    public class Test {
    public static void main(String[] args) {
    BatchRunner.Ausführen("D:\\Batch.bat");
    }
    }


    Batch.bat erhält die Befehle:

    md D:\BatchOrdner
    md D:\BatchOrdner\1
    md D:\BatchOrdner\2
    md D:\BatchOrdner\3
    md D:\BatchOrdner\4
    md D:\BatchOrdner\5
    md D:\BatchOrdner\6
    md D:\BatchOrdner\7
    md D:\BatchOrdner\8
    md D:\BatchOrdner\9



    So, aber es werden aber bloß erstellt

    D:\BatchOrdner\1
    D:\BatchOrdner\2
    D:\BatchOrdner\3
    D:\BatchOrdner\4



    Als ich(durch puren Zufall) eine Leerzeile unter "md D:\BatchOrdner" setzte wurden nur

    D:\BatchOrdner\1
    D:\BatchOrdner\2
    D:\BatchOrdner\3

    erstellt. Das brachte mich zu der Annahme das (logisch) immer nur die ersten 5 Zeilen einer .bat ausgeführt werden, denn wenn ich Batch.bat so startete wurden alle 9 Unterordner erstellt.

    Nun habe ich meinen ersten Quellcode so modifiziert das er eine .bat Datei erstellt die dann Batch.bat audführen soll:


    import java.io.*;

    public class BatchRunner {
    public static void Ausführen(String Pfad){
    try{
    BufferedWriter writer = new BufferedWriter
    (new OutputStreamWriter(new FileOutputStream( "D:/TempStartBat.bat" ) ) );
    writer.write(Pfad);
    writer.close();
    ProcessBuilder processBuilder = new ProcessBuilder("D:/TempStartBat.bat");
    Process process = processBuilder.start();
    }

    catch(Exception E){}
    }
    }


    Ergebnis ist allerdings dasselbe....




    WAS MACH ICH FALSCH????
     
  2. kazhar

    kazhar Viertel Gigabyte

    hau nach dem processBuilder.start(); ein Thread.sleep(1000); rein.

    wahrscheinlich beendet sich das java programm bevor die .bat fertig abgearbeitet ist.
     
  3. VB-Coder

    VB-Coder Megabyte

    Warum benutzt du nicht mkdir() oder mkdirs() zur Erstellung der Ordner, wenn du sowieso schon mit Java arbeitest ?
     
  4. Me2andU2

    Me2andU2 Byte

    Weil ich eigentlich keine Verzeichnissbäume erstellen will, sondern sie löschen will und das geht mit bat doch einfacher oder???
     
  5. VB-Coder

    VB-Coder Megabyte

Thread Status:
Not open for further replies.

Share This Page