batch datei in script einbinden

  • Hallo zusammen,
    ich möchte gerne eine Batchdatei in mein Script einbinden...
    Das Script soll mithilfe von eac3to die Tonspur einer m2ts datei entnehmen mit dem batch-befehl

    Code
    eac3to.exe *.m2ts 2:ton.ac3


    (Das Sternchen durch den Dateinamen ersetzen)
    Ich möchte, dass durch eine Dateiabfrage die Datei ausgewählt werden kann und dann das Sternchen durch diesen Dateipfad ersetzt wird.
    Dateiabfrage ist klar:

    [autoit]

    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.*)",0)

    [/autoit]


    wär schön wenn ihr mir helfen könntet
    lg mpsikorski 8)

    Einmal editiert, zuletzt von mpsikorski (9. Juli 2011 um 18:14)

  • Welche Batch einbinden?

    [autoit]

    $dir_prg_exe = "Pfad zu der exe\"
    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.*)",0)

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

    If @error Then
    MsgBox(4096,"","No File(s) chosen")
    Else
    ;~ $datei = StringReplace($datei, "|", @CRLF)
    Run($dir_prg_exe & "eac3to.exe " & $datei & ".m2ts 2:ton.ac3")
    ;~ MsgBox(4096,"","You chose " & $datei)
    EndIf

    [/autoit]

    Im Prinzip kannst Du das Beispiel aus der Hilfe ja so übernehmen.

    Achtung Anfänger! :whistling:

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

  • evtl. ist es so besser (verständlich)

    [autoit]

    $eac3_exe = "c:\programme\eac\eac3.exe"
    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.m2ts)",0)

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

    If @error Then
    MsgBox(4096,"","Keine Datei ausgewählt")
    Else
    Run($eac3_exe & " " & $datei & " 2:ton.ac3")
    EndIf

    [/autoit]

    Oben war noch ein Fehler drin die Dateiendung war doppelt ;)
    weiter oben abgeändert auf den Filter *.m2ts

    Brauchst Du nicht noch nen Parameter für die Ausgabedatei?
    Ich würde da ne kleine Gui drumzubasteln, mit nem Button für die Auswahl und einen für das starten.
    Evtl. noch ne Batch Funktion
    Aus Datei alle Files einlesen und abarbeiten oder alle aus einem Ordner

    Achtung Anfänger! :whistling:

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

    2 Mal editiert, zuletzt von Dietmar (9. Juli 2011 um 19:03)

  • jo Danke hab mal ne Gui drum gemacht und hab da noch ne kleine Frage zu!
    undzwar: ich möchte ein ergebnis in einer textbox ausgeben lassen... (unten im Code wirste schon finden)
    Danke schonmal !!!

    hier noch der Code :D

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $gui_main = GUICreate("mpsikorskis BluRay Sound Ripper", 484, 266, 189, 119)
    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.*)",0)

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

    If @error Then
    MsgBox(4096,"","ERROR: Bitte wähle eine Datei aus")
    Else
    $name = GUICtrlCreateLabel($datei, 8, 64, 200, 100)
    EndIf

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

    $MenuItem1 = GUICtrlCreateMenu("&Datei")
    $GUI_menu_close = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenu("&Hilfe")
    $gui_menu_Info = GUICtrlCreateMenuItem("Info", $MenuItem2)
    $gui_menu_help = GUICtrlCreateMenuItem("Hilfe/Tutorial", $MenuItem2)
    $bSelect = GUICtrlCreateButton("Datei Auswählen", 0, 0, 89, 41, $WS_GROUP)
    $bFindsound = GUICtrlCreateButton("Tonspuren herausfinden", 328, 64, 137, 41, $WS_GROUP)

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

    $bRipFile = GUICtrlCreateButton("Tonspur Rippen", 328, 128, 137, 41, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    exitloop

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

    Case $bSelect
    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.*)",0)
    If @error Then
    MsgBox(4096,"","ERROR: Bitte wähle eine Datei aus")
    Else
    $name = GUICtrlCreateLabel($datei, 8, 64, 500, 100)
    EndIf
    Case $bFindsound
    Run("eac3to.exe " & $datei)
    ;~ Tonspur wird abgefragt um sie unten eben durch die die jeweilige zahl zu ersetzen... bau ich später ein
    ;~ und hier ist auch mein Problem! ich würde gerne das ergebnis in einer msgbox ausgeben lassen, weil sonst das command fenster direkt wieder verschwindet und der befehl "pause geht auch nicht"
    Case $bRipFile
    Run("eac3to.exe " & $datei & " 3:ton.ac3")
    ;~ die 3 ist nur ein beispiel --> mache hinterher noch ne variable
    EndSwitch
    WEnd

    [/autoit]
  • Wenn Das File open 2x gebraucht wird beim Programmstart und späterer Auswahl dann pack es in ein Funktion


    Beispiel:
    msgbox(0,"",Open_File())

    [autoit]

    Func Open_File()
    $datei = FileOpenDialog("m2ts Datei auswählen", "c:\", "(*.m2ts)",0)

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

    If @error Then
    MsgBox(4096,"","Keine Datei ausgewählt")
    Else
    Run($eac3_exe & " " & $datei & " 2:ton.ac3")
    EndIf
    Return $datei
    Endfund

    [/autoit]

    Weiterhin lässt Du zu das man alle möglichen Dateiendungen auswählen kann. hatte ich schon angepasst.

    zu den Fragen: Evtl. kann man die Ausgaben in ein Logfile schreiben, sehr wahrscheinlich sogar.
    Und die Dos Gui dann verstecken, ansonsten kann man das Kosolenfenster auch auslesen.

    [ gelöst ] Arbeiten mit der Eingabeaufforderung

    https://autoit.de/index.php?page…Read#post222935

    Achtung Anfänger! :whistling:

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