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

  • Hi,

    ich hätte da mal ein verstaendnis Problem und vielleicht bekomme ich ja eine Lösung von euch :)

    Ich bin gerade dabei einen CRC ueber ein Netzlaufwerk (dort liegende Datei) zu erstellen. Für gewisse Ordner habe ich eine Variable wo genau der Name des Ordner drinnen steht den ich brauche um den Pfad zu kompletieren.

    Hier der Befehl:
    Run(@ComSpec & " /k" & @SystemDir & "\exf.exe -crc32 T:\_HDDRecovery\" & $chars & "\ODDFiles\boot.wim

    Sobald er die Variable in die cmd schreibt wird zwar der OrdnerPfad geschrieben jedoch alles hinter der Variable ("\ODDFIles\boot.wim") wird nicht mehr geschrieben.
    Habe ich da irgendwo einen Denkfehler? Oder sollte er nicht trotz allem den restlichen Pfad weiter schreiben?

    Gruß,
    Andreas

    Einmal editiert, zuletzt von Pay (25. März 2009 um 12:40)

  • 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.

  • exf ist ein tool um ueber console crc32 von files zu machen

    Das was du mir gerade geschrieben hast, habe ich auch schon versucht, aber hat leider nichts gebracht.
    Alles nach der Variable wird nicht mehr geschrieben :/
    :/

  • So vielleicht...

    [autoit]

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

    [/autoit]

    ----------------------------------------------------------------------------------------------------------------------
    Früher musste man Drachen töten und konnte die Jungfrau heiraten.
    Heute gibt es keine Jungfrauen mehr, man muss den Drachen heiraten!

  • sorry, die klammer hinter der boot.wim habe ich vergessen hin zu schreiben.
    Also nur hier im Forum ein Fehler.

    Nach der Zeile passiert nichts mehr, der schreibt lediglich eine Datei mit dem CRC der dann spaeter verglichen wird

  • @ XTC99
    gleicher effekt, nach Variable kommt nichts mehr.

    @Macrostop

    jo, zu dem Wert soll es kommen, wenn er nach der Variable noch das "\ODDFiles\boot.wim" setzen wuerde.

    mit exf -crc32 (Pfad\boot.wim) -boot.wim ist hier die Datei von der, der CRC gemacht werden sollte, was es aber nicht tut, da nach der Variable alles weg gelassen wird und er daher auch keinen CRC erstellen kann, da er das File nicht findet.

  • 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.

  • Danke,

    versuche ich dann gleich mal..
    Ich habe irgendwie das Gefuehl, dass es an der Variable liegt.. bzw wie diese uebergeben wird.

  • 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.

    Einmal editiert, zuletzt von Macrostop (25. März 2009 um 12:21)

  • Hi,

    wie ich vermutet habe, lags an meiner Variable.. die uebergabe war nicht wirklich ganz sauber, sind anscheindet ein paar "unsichtbare" Zeichen mit dazu gekommen *g*

    Aber danke nochmal fuer die vorallem schnelle Hilfe ;)

    Ok ums dir ganz schnell zu erklaeren.. diese Variable von der wir reden wird aus einer Text Datei generiert.
    Ich habe den Fehler gemacht und mit FileRead den Text ausgelesen, anstatt mit filereadline, daher auch anscheinend die Probleme