XMl Datei mit AutoIT Script ausführen

  • Was genau passiert ist abhängig davon, mit welchem Programm die jeweilige Funktion verknüpft ist. Bei Open kann es z. B. Notepad++ sein, bei Edit HateML Pro, ... und demensprechend ändern sich auch die möglichen Parameter.

    3 Mal editiert, zuletzt von Bitnugger (8. November 2016 um 22:50)

  • Okay super danke.

    Wenn ich jetzt die Datei dann an einem bestimmten Ordner Pfad kopieren will wie mache das ich das dann?
    geht das ein mit "copy/pfad..."
    oder muss ich das anders machen?

    Einmal editiert, zuletzt von Sent1 (9. November 2016 um 06:47)

  • Einmal editiert, zuletzt von Bitnugger (9. November 2016 um 08:20)

  • AutoIt
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    $iErr = FileMove('C:\Users\Desktop\Test_Script\Test.xml', 'C:\Users\Desktop\Neuer Ordner\Test.xml')
    $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
    ShellExecute('C:\Users\Desktop\Neuer Ordner\Test.xml')

    Wenn ich das so mache kommt immer eine Fehlermeldung wegen der Linie 4.
    Was bewirkt die Linie 4 genau?

    Ich will mit dem Script eine Datei von einem Ort in einen andern Ordner kopieren wo es diese Datei schon gibt. Diese soll dann ersetzt werden.
    Hintergrund ist der das ich nicht immer für eine S7-300 Verbindung die Schnittstelle ändern will sondern das Automatisch passiert. =)

    • Offizieller Beitrag

    Das hatte doch @Bitnugger bereits gepostet, du hattest falsch abgeschrieben.

    Zeile 19/20

    AutoIt
    Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_OVERWRITE + $FC_CREATEPATH)
    If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
  • If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!") +1
    ______________________________________________________________________^

    Unterminated bedeutet, dass du einen String zwar mit einem öffnenden " oder ' angefangen hast, ihn dann aber nicht wieder mit einem geschlossen hast.

    Also immer so... "Hallo Peter" oder 'Hallo Peter'

  • Super das verschieben klappt schon mal, da die datei schon verhanden ist kommt eine Fehlermeldung. Wie bekomme ich es nun hin das die Datei vorher gelöscht wird und die Ursprungsdatei bestehen bleibt?

    2 Mal editiert, zuletzt von Sent1 (9. November 2016 um 14:12)

    • Offizieller Beitrag

    Wie bekomme ich es nun hin das die Datei dann automatisch überschrieben wird?

    Liest du überhaupt die Posts, die wir schreiben und versuchst den Code zu verstehen? Ist doch alles erklärt:

    Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_OVERWRITE + $FC_CREATEPATH)

  • AutoIt
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    Local $iErr = FileCopy('C:\Users\Desktop\ACCON-NetLink-PRO.PROFIBUS.1.xml', 'C:\ProgramData\Siemens\Automation\Simatic OAM\data\LogDevices', $FC_OVERWRITE + $FC_CREATEPATH)
    If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!") +1
    ShellExecute('C:\Users\Desktop\1.bat')

    Hier ist der Code

    • Offizieller Beitrag

    aus der Hilfe zu FileCopy:
    For instance the combined flag $FC_OVERWRITE (1) + $FC_CREATEPATH (8) overwrites
    the target file and pre-checks for the destination directory structure and if it
    doesn't exist creates it automatically.

    Some file attributes can make the overwriting impossible, if this is the case look
    at FileSetAttrib() to change the attributes of a file.

    Das Overwrite-Flag ist richtig gesetzt, insofern solltest du deine Dateiattribute prüfen um herauszufinden, warum ein Überschreiben nicht geht. evtl. fehlen dem Skript auch die Rechte (#RequireAdmin ?).

  • Wenn du die zu kopierende Datei mit einer anderen Anwendung geöffnet hast, z. B. in einem Editor, kannst du sie ebenfalls nicht überschreiben oder umbenennen, weil dann der Editor seine Krallen (sprich: Lock) darauf hat.