Runwait mit GDisk32.exe bricht ab

  • Hallo,

    ich starte Windows von der Part PE-CD und möchte mit dem tool Gdisk von Symantec alle partitionen löschen und anschließend neue Partitionen erstellen. Da alle Partitionen nich in Benutzung sind, ist das Löschen der Partitionen eigentlich kein Problem.
    Wenn ich den Befehl
    GDisk32.exe /batch:GDISK-BATCH.txt

    in einem Command-Fenster absetze, funktioniert er auch einwandfrei, aber wenn ich den Befehl in Autoit wie folgt einbaue:

    $return = RunWait("X:\Programs\SYMANTEC\GDisk32.exe /batch:GDISK-BATCH.txt")

    bricht der Befehl ab und die Partitionen auf der Platte werden nicht gelöscht. Die Variable $return liefert den Wert 1.

    Die Möglichkeit mit WinWait wie unten habe ich auch versucht, leider ohne Erfolg
    $return = RunWait("X:\Programs\SYMANTEC\GDisk32.exe /batch:GDISK-BATCH.txt")
    WinWait("X:\Programs\SYMANTEC\GDisk32.exe")
    WinWaitClose("X:\Programs\SYMANTEC\GDisk32.exe")

    Die Batchdatei "GDISK-BATCH.TXT" enthält die Stapelbefehle für GDisk (lösche alle Partitionen der HD 1, erstelle eine prim. Partition 30GB, ertstelle eine Ext.-Part. von 60 GB, erstelle eine log. Part. von 20 GB und erstelle eine log. Part. von 40 GB):
    ........................................................
    1 /y /del /all
    1 /y /cre /pri /sz:30000 /for /ntfs /q
    1 /y /cre /ext /sz:60000 /for /ntfs /q
    1 /y /cre /log /sz:20000 /for /ntfs /q
    1 /y /cre /log /sz:40000 /for /ntfs /q
    .........................................................

    Die erste Zeile wird nicht zu Ende prozessiert, da ich alle Partitionen immer noch sehen kann.

    Wenn ich die Partitonen händisch formatiere und danach mein AutoIt-Programm starte, funktioniert es aber. Da alles automatisch ablaufen soll, habe ich gedacht als Abhilfe entweder die einzelnen Partitionen zu formatieren oder alle Dateien auf den Partitionen zu löschen.

    Mein Formatbefehl für die erste Partition in Autoit sieht so aus:

    $retf = RunWait(@ComSpec & " /c " & "format C: /FS:NTFS V:WINDOWS /Q < FORMAT-INPUT.txt")

    liefert leider auch den Returncode 1.
    Die "FORMAT-INPUT.TXT" Datei enhält die für die Eingabe beim Formatbefehl erforderliche Zeilen (Volumename und Bestätigung mit j):

    WINDOWS
    j

    Elegant wäre es natürlich, wenn der GDisk-Befehl in Autoit direkt funktionieren würde. Mit der Möglichkeit die Partitionen vorher zu formatieren oder alle Files auf den Partitionen zu löschen, könnte ich auch leben.

    Danke im Voraus.

    Einmal editiert, zuletzt von ivan_delerdivan (20. November 2007 um 18:53)

    • Offizieller Beitrag

    Hallo

    RunWait startet eine ausführbare Datei und wartet bis sie beendet ist!

    Also sozusagen

    [autoit]

    $pid = Run("bla.exe")
    While ProcessExists($pid)
    Sleep(100)
    Wend

    [/autoit]

    Das hier kann also garnicht funktionieren:

    [autoit]

    $return = RunWait("X:\Programs\SYMANTEC\GDisk32.exe /batch:GDISK-BATCH.txt")
    WinWait("X:\Programs\SYMANTEC\GDisk32.exe")
    WinWaitClose("X:\Programs\SYMANTEC\GDisk32.exe")

    [/autoit]

    Probier das mal mit Run anstatt RunWait!

    Mfg Spider

  • Hallo,

    vielen Dank gtaspider.

    Auch mit dem Befehl Run funktioniert es leider nicht.

    Nun habe ich eine Abhilfe gefunden: Ich überschreibe vorher alle Partitionen mit einem leeren Image (restore leeres-image.gho) und danach kann ich über mein AutoIt-Script die leere Partition löschen und neue Partitionen einrichten.

    Gruß
    Ivan