WinRAR Rückgabewerte

  • Moin zusammen,

    Hab nach langem nochmal AutoIT ausgepackt und, naja, ein Problem.

    Erstelle per Script *.rar Dateien, was auch wunderbar funktioniert, bis auf manche Dateien, wo ein Problem besteht.

    Meine Frage also: Gibt es eine Möglichkeit die Rückgabewerte der rar.exe irgenwie auszuwerten??

    Hoffe einer kann mir da helfen.

    Ach ja, noch ein kleines Beispiel zum testen:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $bChkbx1 = False
    $bChkbx2 = False

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Form1", 375, 78, 192, 124)
    $MyButton1 = GUICtrlCreateButton("Hinzu", 32, 24, 100, 30, $BS_FLAT)
    $Checkbox1 = GUICtrlCreateCheckbox("Verzeichnisse und Unterverzeichnisse", 160, 16, 209, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("einzelne Dateien", 160, 40, 193, 17)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    $unterordner = True

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    $1 = GUICtrlRead($Checkbox1)
    If $1 = 1 Then
    $bChkbx1 = True
    ToolTip($bChkbx1)
    Else
    $bChkbx1 = False
    EndIf
    Case $Checkbox2
    $2 = GUICtrlRead($Checkbox2)
    If $2 = 1 Then
    $bChkbx2 = True
    Else
    $bChkbx2 = False
    EndIf
    Case $MyButton1
    $chkbx1 = GUICtrlRead($Checkbox1)
    $chkbx2 = GUICtrlRead($Checkbox2)
    If ($chkbx1 + $chkbx2) = 2 Then
    MsgBox(0, "Fehler", "Bitte nur eine Checkbox auswählen")
    ElseIf ($chkbx1 + $chkbx2) = 8 Then
    MsgBox(0, "Fehler", "Bitte mindestens eine Checkbox auswählen")
    Else
    If $bChkbx1 = True Then
    $file = FileSelectFolder("hinzu", "c:\")
    MsgBox(0,"",$file)
    $aFile = _FileListToArray($file)
    $file_replace = StringReplace($file,"\","_")
    $file_replace = StringReplace($file_replace,":","")
    MsgBox(0,"",$file_replace)
    For $i = 1 To UBound($aFile) - 1
    RunWait(@ScriptDir & '\rar.exe a "c:\test\' & $file_replace & '.rar" "' & $file & '\' & $aFile[$i] & '"') ;-ri0:100
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $bChkbx2 = True Then
    ;fileopendialog
    MsgBox(0, "", "FileOpenDialog")
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]

    Nicht komplett und schön, aber man ganze Verzeichnisse packen. Sollte zum testen ja reichen

    Mfg
    MrB

    Einmal editiert, zuletzt von MrB (25. Januar 2011 um 17:41)

  • omg
    "Bob schau her ganze Verzeichnisse packen"
    Bob:"unglaublich"

    Der schiere Wahnsinn besonders wenn man nach Rückgabewert und rar googelt, der erste Treffer....

    http://www.wartower.de/forum/showthread.php?t=647588

    weitere Treffer:
    http://www.google.de/#hl=de&source=hp&q=r%C3%BCckgabewert+rar&aq=f&aqi=&aql=&oq=&fp=4d9f1e7e21e257ea

    Manchamal habe ich das Gefühl das manche selbst zum googlen zu faul sind :(
    Der erste Treffer ist zwar nicht schön aber machbar, mich stört nur die Frage ob es geht,
    das hätte man ohne großes Hexenwerk erfahren können.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Hmm, würde mal sagen, hilft überhaupt nicht deine Antwort. Wenn´s so einfach ist wie du sagst, warum nennst du dann Beispiele aus einer Batch Datei.
    Für dich mag es einfach sein, aber nicht für alle. Das es geht habe ich mir schon gedacht, nur keine Ahnung wie! Wahrscheinlich hättest du dann geschrieben, dass wenn ich´s ja weis das es geht, es ja auch machen kann und nicht fragen brauch.

    Aber sei´s drum. So Leute gibt´s halt immer wieder. Vergesst es einfach. Der Ton hier ist schon ein Fall für sich

  • Dietmar


    Vergiss es, war auf Arbeit und auch net grad gut drauf :-(.


    @all


    Hab da noch ein kleines Prob und will dafür keinen neuen Thread aufmachen, da es fast passt.


    Ich rufe WinRar mit folgendem Befehl auf:

    [autoit]


    RunWait(@ScriptDir & '\rar.exe a -ep -ms7z;ace;arj;bz2;cab;gz;jpeg;jpg;lha;lzh;mp3;rar;taz;tgz;z;zip;iso;mdf;img -idcdpq "' & @ScriptDir & '\Files\' & $nr & '\' & $nr & '.rar" "' & $file_open & '"', @SW_HIDE)

    [/autoit]


    Ich versuch verzweifelt, das Ausgabefenster von WinRar zu unterdrücken, da das echt nervt bei mehrern Operationen. Nur es funktioniert nicht. Weder @SW_HIDE noch der Schalter -idcdpq funktionieren. Der Schalter sollte ja auch nur Meldungen unterdrücken, aber einen Versuch wars wert.


    Hat einer eine Idee ? In der rar.txt finde ich mal nix dazu.



    Vergesst es, Fehler gefunden. Schlauch war wieder Schuld.

    Einmal editiert, zuletzt von MrB (29. Januar 2011 um 17:56)