Hallo Zusammen,
Wie kann ich eine XML-Datei mit AutoIT ausführen das diese angewendet wird?
Hoffe ihr könnt mir helfen =)
Hallo Zusammen,
Wie kann ich eine XML-Datei mit AutoIT ausführen das diese angewendet wird?
Hoffe ihr könnt mir helfen =)
#include <AutoItConstants.au3>
; ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )
Local $sXMLFILE = 'c:\xml\MyXMLFile.xml'
Local $sParameter = ''
Local $sWorkingDir = 'f:\xml'
Local $fVerb = $SHEX_OPEN ; $SHEX_EDIT, $SHEX_PRINT, $SHEX_PROPERTIES
Local $fShowFlag = @SW_SHOW, @SW_HIDE, @SW_MINIMIZE, @SW_MAXIMIZE, ...
; Hier mal ein Aufruf mit allen Parametern
ShellExecute($sXMLFILE, $sParameter, $sWorkingDir, $fVerb, $fShowFlag)
; Hier auch die einfachste Version...
ShellExecute($sXMLFILE) ; $SHEX_OPEN = Default
Alles anzeigen
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.
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?
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
; FileCopy ( "source", "dest" [, flag = 0] )
Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_NOOVERWRITE)
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; oder
Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', BitOr($FC_NOOVERWRITE, $FC_CREATEPATH))
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; oder
Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_NOOVERWRITE + $FC_CREATEPATH)
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
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
; oder
Local $iErr = FileCopy('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml')
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; FileMove ( "source", "dest" [, flag = 0] )
Local $iErr = FileMove('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_NOOVERWRITE)
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; oder
Local $iErr = FileMove('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', BitOr($FC_NOOVERWRITE, $FC_CREATEPATH))
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; oder
Local $iErr = FileMove('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml', $FC_NOOVERWRITE + $FC_CREATEPATH)
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
; oder
Local $iErr = FileMove('c:\xml\MyXMLFile.xml', 'f:\OldFiles\MyXMLFile.xml')
If $iErr = 0 Then Exit MsgBox($MB_SYSTEMMODAL, "", "An error occurred!) +1
ShellExecute('f:\OldFiles\MyXMLFile.xml')
Alles anzeigen
#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. =)
Was bewirkt die Linie 4 genau?
Da fehlt ein If davor, dann passt es.
Da fehlt ein If davor, dann passt es.
Wo muss das if hin?
Wie mache ich das dann wenn die meldung kommt das die Datei schon exísiert? Das diese ersetz werden soll.
Das hatte doch @Bitnugger bereits gepostet, du hattest falsch abgeschrieben.
Zeile 19/20
Die Fehlermeldung kommt dann immer
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?
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)
Ich habs jetzt so gemacht das die Datei gelöscht wird und rein kopiert wird. Das mit dem Überschreiben klappt nicht wirklich.
Vielen vielen Dank für die Hilfe
Das ist aber jetzt Quatsch, was du da sagst, denn wenn du sie nicht überschreiben kannst, kannst du sie auch nicht löschen!
DAs script geht mit dem Befehl dann nicht .
Dann zeige uns das Script doch mal, damit wir dazu etwas sinnvolles sagen können... denn "geht nicht" ist eine sehr diffuse Aussage, mit der hier niemand etwas anfangen kann.
#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
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.
Okay dann also doch erst löschen und dann kopieren.
Vielen Dank für die Hilfe