1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Macrostop

Beiträge von Macrostop

  • Progressbar: Fehler im Script

    • Macrostop
    • 26. März 2009 um 15:15

    Hallo Community

    :P Habe mit Eurer Hilfe meine erste funktionierende GUI erstellt. :P
    Dafür erstmal vielen Dank. :thumbup:
    Es fehlt mir aber die genauere Kenntnis um das Script an einer bestimmten Stelle zu beenden,
    deshalb bitte ich Euch mal einen Blick darauf zu werfen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    Opt('MustDeclareVars', 1)
    Local $outfile, $isofertig, $isoaktuell, $command, $exe, $delete ; ??? wozu dient das vordeklarieren ?
    $outfile = "D:\GRUB.iso"
    $isofertig = 504072192 ;kb
    $isoaktuell = 0
    $command = "mkisofs.exe -o " & $outfile & " ""C:\GRUB"""
    $exe = "mkisofs.exe"
    FileDelete($outfile)
    $delete = FileExists($outfile)
    ; MsgBox(0 , "Info", "" & $outfile & " existiert nicht.")
    Example()
    Func Example()
    Local $progressbar1, $button, $wait, $s, $msg, $m
    GUICreate("Stop My GUI", 500, 100, 100, 200) ; erstellt GUI-Fenster
    $progressbar1 = GUICtrlCreateProgress(10, 10, 480, 20); Fortschrittsbalken
    $button = GUICtrlCreateButton("START", 60, 50, 80, 30) ; erstellt START-Button
    GUISetState(@SW_SHOW) ; startet die GUI
    $wait = 80 ; time in msec to next progressstep
    $s = 0; progressbar-saveposition
    Do ; Anfang der Schleife (= Anfang der progresssteps ?)
    $msg = GUIGetMsg() ; fragt ob, und was geklickt wurde
    If $msg = $button Then ; wenn button-click START
    Run($command, "", @SW_MINIMIZE) ; startet "mkisofs.exe" minimiert
    GUICtrlSetData($button, "CANCEL"); ändert label des button in CANCEL
    For $i = $s To 100 ; Schritte von aktueller Saveposition bis 100
    $m = GUIGetMsg() ; fragt ob, und was geklickt wurde
    If $m = -3 Then ExitLoop ; ??? Was produziert den Wert "-3"
    If $m = $button Then ; wenn button-click CANCEL
    ProcessClose($exe) ; beendet "mkisofs.exe"
    Exit ; beendet dieses Script
    Else ; wenn button-click CANCEL nicht erfolgt
    $isoaktuell = FileGetSize($outfile) ; prüft Dateigröße
    GUICtrlSetData($progressbar1, $isoaktuell/$isofertig*100) ; gibt die Position des Balkens vor
    Sleep($wait) ; wartet vorgegebene Zeit
    EndIf ; Ende der Bedingung
    Next ; Weiter geht´s
    If $i > 100 Then ; Wenn Schritte bei 100 dann
    GUICtrlSetData($button, "FINISHED"); ändert label des button in FINISHED
    If $m = $button Then ; wenn button-click FINISHED --- -->
    Exit ; dann soll das Script beendet werden --> aber ??? CMD startet neu !!! WARUM ?
    EndIf ; Ende der Bedingung
    EndIf ; Ende der Bedingung
    EndIf ; Ende der Bedingung
    Until $msg = $GUI_EVENT_CLOSE ; bis Fenster geschlossen wird
    EndFunc ;==>Example

    [/autoit]


    Im Script hab ich Kommentare eingefügt, die möglicherweise unkorrekt sind und daher zum Fehler führen.
    Meine Frage: Wie muß ich das Script konzipieren damit es nach Ablauf der Progressbar mit dem Button "FINISHED" geschlossen werden kann.
    Außerdem: -Zeile 29: Was produziert den Wert "-3"
    -Zeile 4 und 15: wozu dient das vordeklarieren ?
    Vielleicht habt Ihr auch noch andere Vorschläge.
    Vielen Dank im Vorraus.

    Gruß M.

  • Anwendung und Fortschrittsbalken gleichzeitig starten

    • Macrostop
    • 26. März 2009 um 10:39

    Bitboy

    Vielen Dank für Deine Antwort.
    Jetz ist die GUI sichtbar aber es tut sich noch nichts.
    Werde jetzt mal versuchen den "Start-Button" einzubauen.

    Gruß M.

  • Anwendung und Fortschrittsbalken gleichzeitig starten

    • Macrostop
    • 25. März 2009 um 23:19

    Hallo Hallo

    Hab´s versucht so gut ich konnte:

    [autoit]

    $outfile = "C:\GRUB.iso"
    $isofertig = 504072192 ;kb
    $isoaktuell = 0
    ;Befehl ausführen
    $command = "mkisofs.exe -o " & $outfile & " ""C:\GRUB"""
    Run($command)
    Do
    $isoaktuell = FileGetSize($outfile); in kb
    $progressbar1 = GUICtrlCreateProgress(10, 10, 480, 20); Fortschrittsbalken
    GUICtrlSetData($progressbar1, $isoaktuell/$isofertig*100)
    Sleep(500)
    Until $isoaktuell + 1 >= $isofertig
    MsgBox(0 , "Info", " $isoaktuell = " & $isoaktuell & " kb ")

    [/autoit]


    Das ISO wird erstellt, aber der Fortschritt zeigt sich nicht.
    Die Schleife wird auch korrekt ausgeführt weil "MsgBox" direkt nach Ablauf der Kommandozeile erscheint.
    (Ich mußte "mkisofs" nehmen weil "oscdimg" die ISO-Größe anders anzeigt.)

    Wie muß die Progressbar genauer definiert werden ?

    Gruß M.

  • Anwendung und Fortschrittsbalken gleichzeitig starten

    • Macrostop
    • 25. März 2009 um 22:06

    Hallo Bitboy
    Vielen Dank daß Du Dir die Zeit genommen hast um mir die Sache zu erklären.
    Werde mich sofort dran machen es auszuprobieren.

    Danke M.

  • Anwendung und Fortschrittsbalken gleichzeitig starten

    • Macrostop
    • 25. März 2009 um 18:59

    Vielen Dank für Eure Vorschläge

    Wenn ich´s richtig verstehe:

    [autoit]


    ; zuerst deklarieren ?
    $isofertig = ??? ; Größe der fertigen ISO-Datei ?
    $isoaktuell = ; was muß hierher ?

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

    ; Befehl ausführen
    Do
    $isoaktuell = FileGetSize(isodatei) ; check laufend die größe der erstellten Datei
    GUICtrlSetData($progressbar1,$isoaktuell/$isofertig*100) ; Formel die dem Progressbalken die Geschwindigkeit vorgibt ?

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

    Until $isoaktuell + 1 >= $isofertig ; bis die aktuelle größe + 1 größer oder gleich der Vorgabe sind ?

    [/autoit]


    Ist absolutes Neuland, deshalb muß ich leider verdammt viele Fragen stellen.
    zB. wohin muß der CMD-Befehl ?

    Gruß und Danke M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 12:38

    Hi Pal
    OK --> wenn´s läuft . . .
    bye M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 12:09

    hi Pal

    Zitat

    dass es an der Variable liegt.. bzw wie diese uebergeben wird.


    - welche Variable ?
    - welche Übergabe ?

    Code mit Variablen-ChecK:

    [autoit]

    $chars = "XXX"
    $var = "T:\_HDDRecovery\" & $chars & "\ODDFiles\boot.wim"
    MsgBox(0 , "Info", " $var = " & $var & "")
    $command = "exf.exe -crc32 " & $var & ""
    MsgBox(0 , "Info", " $command = " & $command & "")
    $batch = @ScriptDir & "\exec.bat"
    FileOpen($batch, 2)
    FileWrite($batch, $command & @CRLF)
    FileClose($batch)
    Run(@ComSpec & " /k " & $batch & "")

    [/autoit]


    M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 11:55

    hi Pay
    probiermal das:

    [autoit]

    $chars = "XXX"
    $var = "T:\_HDDRecovery\" & $chars & "\ODDFiles\boot.wim"
    $command = "exf.exe -crc32 " & $var & ""
    $batch = @ScriptDir & "\exec.bat"
    FileOpen($batch, 2)
    FileWrite($batch, $command & @CRLF)
    FileClose($batch)
    Run(@ComSpec & " /k " & $batch & "")

    [/autoit]


    Ist leider echter code-murks aber es läuft (bei mir).
    gruß M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 11:30

    hi Pay
    hab einen screenshot gemacht:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    der Hashwert ist demnach "26844993".
    Willst du diesen wert verwenden?
    M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 11:21

    hi Pay
    du postest nicht was nach ......\ODDFIles\boot.wim noch geschrieben werden soll, oder?
    gruß M.

  • Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " Problem mit Variable

    • Macrostop
    • 25. März 2009 um 11:04

    hallo Pay
    Wenn ichs richtig sehe fehlt am schluß das ende der klammer.
    Andere mögliche Lösung: du deklarierst den pfad vorher:

    [autoit]

    $var = "T:\_HDDRecovery\" & $chars & "\ODDFiles\boot.wim"
    ; und dann:
    Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 " & $var & "")

    [/autoit]


    Was ist "exf.exe" für ein programm ?
    Kann es leider nicht nachstellen.
    Gruß M.

  • Anwendung und Fortschrittsbalken gleichzeitig starten

    • Macrostop
    • 25. März 2009 um 01:30

    Hallo Community

    Habe hier im Forum viele schöne Beispiele von Progressbars gesehen.
    Zum Beispiel:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Das zugehörige GUI-Script:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    Opt('MustDeclareVars', 1)
    Example()
    Func Example()
    Local $progressbar1, $button, $wait, $s, $msg, $m
    GUICreate("My GUI Progressbar", 500, 100, 100, 200)
    $progressbar1 = GUICtrlCreateProgress(10, 10, 480, 20); Fortschrittsbalken
    $button = GUICtrlCreateButton("Start", 60, 50, 80, 30)
    GUISetState()
    $wait = 20; wait 20ms for next progressstep
    $s = 0; progressbar-saveposition
    Do
    $msg = GUIGetMsg()
    If $msg = $button Then
    GUICtrlSetData($button, "Stop")
    For $i = $s To 100
    $m = GUIGetMsg()
    If $m = -3 Then ExitLoop
    If $m = $button Then
    GUICtrlSetData($button, "Weiter")
    $s = $i;save the current bar-position to $s
    ExitLoop
    Else
    $s = 0
    GUICtrlSetData($progressbar1, $i)
    Sleep($wait)
    EndIf
    Next
    If $i > 100 Then
    GUICtrlSetData($button, "Start")
    EndIf
    EndIf
    Until $msg = $GUI_EVENT_CLOSE
    EndFunc ;==>Example

    [/autoit]


    Wie kann man in dieses GUI-Script einen Schalter einbauen der die ISO-Erstellung per CMD-Befehl und den Fortschrittsbalken beim Klick auf "Start" gleichzeitig startet ?
    Mein CMD-Befehl:

    Spoiler anzeigen
    [autoit]

    #include <Process.au3>
    $command = "OSCDIMG.exe -lGRUB -h -n -m -o ""C:\GRUB"" ""D:\IMAGES\GRUB-090324.iso"""
    _runDOS($command)

    [/autoit]


    Wenn es eine einfachere Progressbar gibt ist das auch OK, Hauptsache jemand zeigt mir wie ich sie gleichzeizig in Gang setze.
    Für jeden noch so kleinen Hinweis bin ich Euch schon dankbar !

    Gruß M.

  • Kommandozeilenausgabe in AutoIt-Fenster

    • Macrostop
    • 23. März 2009 um 19:55

    Vielen Dank Xenobiologist :)

    Dein Tip hat gut funktioniert: Das Resultat des CMD-Kommandos wird in einem Fenster dargestellt.

    Gruß M.

  • Kommandozeilenausgabe in AutoIt-Fenster

    • Macrostop
    • 23. März 2009 um 14:44

    Danke für Deine schnelle Antwort Xenobiologist

    Habe das gefunden:

    Zitat

    MsgBox(64, 'DOS', _getDOSOutput('set'))

    Func _getDOSOutput($command)
    Local $text = ''
    Local $Pid = Run(@ComSpec & ' /c ' & $command, '', @SW_HIDE, 2 + 4)
    While 1
    $text &= StdoutRead($Pid, False, False)
    If @error Then ExitLoop
    Sleep(10)
    WEnd
    Return $text
    EndFunc ;==>_getDOSOutput

    Alles anzeigen


    Verstehe aber nicht wie ich es in mein Script einbauen soll!
    Muß gestehen daß ich noch nie eine Funktion verwendet hab.
    Werd mal schauen was ich hinkrieg.
    Danke derweil.
    Gruß M.

  • Kommandozeilenausgabe in AutoIt-Fenster

    • Macrostop
    • 23. März 2009 um 13:10

    Hallo Community
    Ich verwende oscdimg.exe um ein ISO zu erstellen.
    Mit einem autoIt-script lege ich Input und Dateiname fest.
    Die eigentliche ISO-Erstellung läuft ohne eigenes Fenster im Hintergrund ab.

    Um den Fortschritt bzw die Ausgaben des Programms zu sehen würde ich gern eine Progressbar einbauen bzw die Ausgabe in einem AutoIt-Fenster sehen.

    Einen Beitrag mit dem hinweis auf "StdoutRead" für 7za.exe habe ich hier im Forum gefunden:

    Zitat

    $wget = Run(@ComSpec & ' /c 7za.exe a -tzip test.zip test.avi', 'e:', @SW_HIDE, 2 + 4)
    Do
    $line = StdoutRead($wget,-88,1) ; "peek" auf True !
    If @error Then ExitLoop
    ConsoleWrite('std: ' & $line & @LF)
    sleep(10)
    Until ProcessExists($wget) = 0
    Exit

    Alles anzeigen


    Leider verstehe ich die Syntax nicht, nur daß dadurch die Ausgaben in ein anderes Fenster erfolgen ?

    Mein Script:
    - verwendet übergebenen Ordner zur erstellung einer ISO-Datei mit Bootloader:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=disk3.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; AutoIt Version: 3.2
    ; Template Version: 90129

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

    Opt("WinWaitDelay", 500)
    Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon
    Opt("MouseCoordMode", 0) ;1=absolute, 0=relative, 2=client
    Opt("ExpandEnvStrings", 1) ;0=don't expand, 1=do expand
    Opt("ExpandVarStrings", 1) ;0=don't expand, 1=do expand
    Opt("WinDetectHiddenText", 0) ;0=don't detect, 1=do detect
    Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced
    Opt("WinTextMatchMode", 1) ;1=complete, 2=quick

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

    #include <Process.au3>
    #include <File.au3>
    ; Output-Folder
    $opfd = RegRead ( "HKEY_CURRENT_USER\Software\OSCDIMG", "OutputFolder" )
    ; MsgBox(0 , "Info", "Output-Folder = " & $opfd & "")

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

    $indir = $CmdLine[1]
    ;$indir = "C:\Programme\CyberLink"

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

    $TimeCode = StringRight(@YEAR, 2) & (@MON) & (@MDAY)
    $uffix = "-" & $TimeCode & ""

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

    $label = InputBox("OSCDIMG", "Disk-Label:", "", " M", 300, 115, "600", "200")
    if @error Then
    Exit
    EndIf

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

    $loader = FileOpenDialog ( "Datei auswählen", $indir, "Bootloader (*.*)", 3, "")
    ; MsgBox(0 , "Info", " $loader = " & $loader & "")
    if @error Then
    $bfo = ""
    $egment = ""
    $bootable = "NO"
    $Find = "xxx"
    ; MsgBox(0 , "Info", "$bootable = " & $bootable & "")
    Else
    ;If $loader = 1 Then
    ; MsgBox(0 , "Info", " $loader = " & $loader & "")
    $short = FileGetShortName( $loader )
    ; MsgBox(0 , "Info", " $short = " & $short & "")
    $lower = StringLower ( $short )
    ; MsgBox(0 , "Info", " $lower = " & $lower & "")
    $Find = StringRight($lower, 5)
    ; MsgBox(0 , "Info", " $Find = " & $Find & "")
    $bootable = "YES"
    ; MsgBox(0 , "Info", "$bootable = " & $bootable & "")
    EndIf

    $ldr = "grldr"
    ; MsgBox(0 , "Info", " $ldr = " & $ldr & "")

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

    If $Find = $ldr Then
    ; MsgBox(0 , "Info", " IF " & $Find & " = " & $ldr & " Then ")
    ; MsgBox(0 , "Info", " grldr selected")
    $bfo = "-b"
    $egment = "-yt0x1000"
    ElseIf $bootable = "YES" Then
    ; MsgBox(0 , "Info", "$bootable = " & $bootable & "")
    $bfo = "-b"
    $egment = ""
    Else
    $bfo = ""
    $egment = ""
    EndIf

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

    $Save = FileSaveDialog ( "Datei speichern unter", $opfd, "CD-Image (*.iso)", 16+2, $label & $uffix)
    if @error Then
    Exit
    EndIf

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

    $EXE = @ScriptDir & "\OSCDIMG.exe"

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

    $zeit = StringRight(@YEAR, 1) & (@MON) & (@MDAY) & "-" & (@HOUR) & (@MIN)

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

    $command = "" & $EXE & " -l" & $label & " -h -n -m -o " & $bfo & "" & $loader & " " & $egment & " " & $indir & " " & $Save & ".iso "

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

    $rc = _RunDos( $command ); -------------> die Ausführung des Programms, die eigentlich in einer DOS-Box bzw. AutoIt-Fenster zu sehen sein soll. --------------------

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

    ; MsgBox(0 , "Info", " $rc = " & $rc & "")
    $test = "" & $Save & ".iso "
    ; MsgBox(0 , "Info", " $test = " & $test & "")
    $size = FileGetSize( $test )
    ; MsgBox(0 , "Info", " $size = " & $size & "")
    if $size < 1048576 Then
    MsgBox(48 , "Warning", "Check Filesize!", 3)
    ;FileDelete($test)
    EndIf
    if $size < 1024 Then
    MsgBox(16 , "ERROR", "Filesize inacceptable!", 3)
    FileDelete($test)
    EndIf

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

    $result = FileExists ( $test )
    ; MsgBox(0 , "Info", " $result = " & $result & "")
    if $result = 0 Then
    MsgBox(16 , "ERROR", "Image was NOT created!", 3)
    $fin = "Error"
    Else
    MsgBox(64 , "Info", "Image successfully created.", 2)
    $fin = "Success"
    EndIf

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

    $log = @ScriptDir & "\oscdimg.log"
    FileOpen($log, 1)
    FileWrite($log, @CRLF)
    FileWrite($log, $zeit & @CRLF)
    FileWrite($log, $command & @CRLF)
    FileWrite($log, $fin & @CRLF)
    FileClose($log)

    [/autoit]

    Wie kann ich die Ausgabe des Programms oscdimg.exe sichtbar machen ?

    An der Stelle "_RunDos( $command )" hab ich versucht mit "GUICreate" einen Schalter einzubauen,
    der dann den Vorgang startet (mit Progressbar), leider hab ich´s nicht hinbekommen.
    (Muß ein "Child-Prozess" gestartet werden?)

    Auch den CMD-Vorgang mit "StdoutRead" in einem AutoIt-Fenster darzustellen ist mir mißlungen.

    Kann mir bitte jemand helfen die entsprechenden Scriptzeilen zu formulieren.

    Vielen Dank im Vorraus.

    Gruß M.

  • Problem mit Anführungszeichen

    • Macrostop
    • 12. Oktober 2008 um 01:35

    Hallo Greenhorn & Community
    Vielen Dank für Eure informativen Beispiele.
    Nach und nach kommt ein bischen Licht in meinen "AutoIt-Dschungel".
    Bin begeistert daß die Community hier tolle Hilfe anbietet. :thumbup:

    Nochmals Danke von Macrostop

  • Problem mit Anführungszeichen

    • Macrostop
    • 9. Oktober 2008 um 23:59

    Hallo Micha_he
    Beides Volltreffer :thumbup:
    Vielen Dank für die kompetente Hilfe :!:
    Gruß Macrostop

    Thread kann als gelöst gekennzeichnet werden, oder muß ich das irgendwo machen ?

  • Problem mit Anführungszeichen

    • Macrostop
    • 9. Oktober 2008 um 20:57

    @peethebe
    Danke daß Du Deine kostbare Zeit hier aufwendest.
    Wie oben gepostet werden zwei Dateien erstellt: script.au3 und batch.cmd.

    script.au3

    Code
    $duf = 1
    $dav = 8
    $dov = 4
    $dif = 5
    $error = "error"
    $Text = "3131231"
    ShellExecute("batch.cmd", $duf & " " & $dov & " " & $dav & " " & $error & " " & Chr(34) & $Text & Chr(34))

    batch.cmd

    Code
    @echo off
    title Return Variable
    color 1e
    :_check
    echo.
    echo. der erste Wert lautet %1
    echo.
    echo. der zweite Wert lautet %2
    echo.
    echo. der dritte Wert lautet %3
    echo.
    echo. der vierte Wert lautet %4
    echo.
    echo. der fünfte Wert lautet %5
    echo.
    echo. 
    ping -n 4 127.0.0.1 >NUL
    Alles anzeigen

    Script.au3 definiert die Variablen und übergibt sie an batch.cmd.
    Screenshot:
    Tweak XP.zip
    Erkennbar: Der vierte Wert - error - wird ohne "" übergeben.
    Frage:
    Wie muß das Script lauten damit "error" übergeben wird.

    Danke im vorraus
    Gruß Macrostop

  • Problem mit Anführungszeichen

    • Macrostop
    • 9. Oktober 2008 um 14:59

    Hallo peethebee
    Besten Dank für Deine Erläuterungen.
    Hab´versucht, sie auf mein Script anzuwenden, Fehlanzeige!
    Ich hoff´es ist nicht zuviel verlangt, wenn Du das Script.au3 bitte korrigierst.

    Code
    $duf = 1
    $dav = 8
    $dov = 4
    $dif = 5
    $error = "error"
    $Text = "3131231"
    ShellExecute("batch.cmd", $duf & " " & $dov & " " & $dav &  " " & $error & " " & Chr(34) & $Text & Chr(34))


    Egal was ich schreib, er Wert "error" wird nur ohne "", oder als "$error" übergeben. :wacko:

    Gruß Macrostop

  • Problem mit Anführungszeichen

    • Macrostop
    • 9. Oktober 2008 um 11:22

    ´Morgen peethebee

    Leider sind die Aussagen in der FAQ etwas mager, und immer wieder treten neue Konstellationen auf,
    die profundes Wissen um die Positionierung von Anführungsstrichen und -&- vorraussetzen.
    Einziges Beispiel aus der FAQ:
    "MsgBox(0, "Example", "Meine Variable ist " & $msg)"
    Frage: Wie soll ich das auf ein Script wie dieses anwenden:
    Script.au3

    Code
    $duf = 1
    $dav = 8
    $dov = 4
    $dif = 5
    $error = "error"
    $Text = "3131231"
    ShellExecute("batch.cmd", $duf & " " & $dov & " " & $dav &  " " & $error & " " & Chr(34) & $Text & Chr(34))


    Batch.cmd

    Code
    @echo off
    title Return Variable
    color 1e
    :_check
    echo.
    echo. der erste Wert lautet %1
    echo.
    echo. der zweite Wert lautet %2
    echo.
    echo. der dritte Wert lautet %3
    echo.
    echo. der vierte Wert lautet %4
    echo.
    echo. der fünfte Wert lautet %5
    echo.
    echo. 
    ping -n 4 127.0.0.1 >NUL
    Alles anzeigen


    Das Script Übergibt den Wert für $Text nur deshalb in "", weil Chr(34) verwendet wird.
    Dazu schweigt die FAQ . . .
    Und wie kann ich das Script dazu bringen auch die Variable $error in "" zu setzen ? :?:
    Auch hier ist die FAQ überfragt.
    So wird jeder Script (zumindest für mich als Anfänger) zum reinen Ratespiel. :wacko:
    Wo sind logische Definitionen und ausführliche Beispiele für den Einsatz von "" und & und Chr(34) ? :?:
    Stell´ich ungewöhnliche Fragen oder wissen alle anderen bescheid ?

    Gruß Macrostop

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™