Schreibt Text an das Ende einer Datei (und erstellt sie erst, falls notwendig).
FileAppend , Text, DateiName, Codierung
Der Text, der an das Ende der Datei angefügt werden soll. Dieser Text kann Zeilenumbruchszeichen (`n) enthalten, um neue Zeilen beginnen zu können. Außerdem kann mithilfe eines Fortsetzungsbereichs eine lange Zeile in mehreren kurzen Zeilen aufgeteilt werden.
Wenn Text leer ist, wird DateiName als leere Datei erstellt (wenn die Datei bereits existiert, wird nur ihr Änderungsdatum aktualisiert).
Ist Text die Variablenreferenz %ClipboardAll% oder eine Variable, die zuvor den Wert von ClipboardAll zugewiesen bekommen hat, wird DateiName ohne Vorbehalt mit dem kompletten Inhalt des Zwischenspeichers überschrieben (d. h. FileDelete ist nicht notwendig).
Der Name der Datei, die erweitert werden soll. Wenn kein absoluter Pfad angegeben ist, wird die Datei im A_WorkingDir-Verzeichnis vermutet. Das Zielverzeichnis muss bereits vorhanden sein.
End-of-Line-Übersetzung (EOL): Um die EOL-Konvertierung zu deaktivieren, setzen Sie ein Sternchen vor dem Dateinamen. Dieser Modus schreibt jedes Zeilenumbruchszeichen (`n) als einzelnes LF-Zeichen (LF) statt wie üblich als CR+LF. Zum Beispiel: *C:\Meine Unix-Datei.txt
.
Falls die Datei noch nicht offen ist (z. B. wegen einer dateilesenden Schleife), wird die EOL-Übersetzung automatisch deaktiviert, wenn der Text-Parameter CR-LF-Paare (`r`n) enthält. Mit anderen Worten tritt die im vorherigen Absatz beschriebene Sternchenoption automatisch in Kraft. Allerdings wird durch die Angabe des Sternchens, wenn Text `r`n enthält, die Leistung verbessert, weil das Programm nicht mehr gezwungen ist, nach `r`n in Text zu suchen.
Standardausgabe (stdout): Ein Sternchen (*) in DateiName bewirkt, dass Text zur Standardausgabe (stdout) gesendet wird. Diese Art von Text kann auf eine Datei umgeleitet, an eine EXE-Datei weitergeleitet oder von originellen Texteditoren abgefangen werden. Zum Beispiel wäre die folgende Zeile als Eingabeaufforderung gültig:
"%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "Mein Skript.ahk" >"Fehlerprotokoll.txt"
Allerdings wird ein zur Standardausgabe gesendeter Text nicht in der Eingabeaufforderung angezeigt, von wo aus die Zeile gestartet wurde. Dies kann umgangen werden, indem 1) [v1.1.33+] das Skript mit der Ahk2Exe-ConsoleApp-Direktive kompiliert, oder 2) die Ausgabe des Skripts via Piping an einen anderen Befehl oder an ein anderes Programm weitergeleitet wird. Zum Beispiel:
"%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "Mein Skript.ahk" |more
For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "Mein Skript.ahk""') do @Echo %L
[v1.1.20+]: Zwei Sternchen (**) in DateiName bewirken, dass Text zur Standardfehlerausgabe (stderr) gesendet wird.
[AHK_L 42+]: Überschreibt die Standardcodierung von FileEncoding mit einer benutzerdefinierten Codierung.
[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.
ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.
A_LastError wird auf das Ergebnis der Systemfunktion GetLastError() gesetzt.
Um eine existierende Datei zu überschreiben, löschen Sie sie mit FileDelete, bevor Sie FileAppend verwenden.
Die Zieldatei wird nach Anfügen des Textes automatisch geschlossen (außer wenn FileAppend in seinem Einzelparameter-Modus innerhalb einer dateilesenden/-schreibenden Schleife ist).
[AHK_L 42+]: FileOpen() im Anfügemodus bietet mehr Kontrolle als FileAppend und lässt die Datei geöffnet, anstatt sie jedes Mal neu zu öffnen und zu schließen. Sobald eine Datei im Anfügemodus geöffnet ist, kann die Zeichenkette mit File.Write(Zeichenkette)
angefügt werden. File-Objekte unterstützen auch binäre Verarbeitung mit RawWrite/RawRead oder WriteNum/ReadNum, während FileAppend nur Text unterstützt.
FileOpen()/File-Objekt, FileRead, dateilesende Schleife, FileReadLine, IniWrite, FileDelete, OutputDebug, Fortsetzungsbereiche
Erstellt eine Datei, falls erforderlich, und fügt eine Zeile an.
FileAppend, Eine weitere Zeile.`n, C:\Meine Dokumente\Test.txt
Verwenden Sie einen Fortsetzungsbereich, um die Übersichtlichkeit und Wartbarkeit des Skripts zu verbessern.
FileAppend, ( Eine Textzeile. Standardmäßig befindet sich das CR-Zeichen (Enter) zwischen der vorherigen und dieser Zeile. Diese Zeile wird mit einem Tabulator eingerückt; Standardmäßig wird dieser Tabulator auch in die Datei geschrieben. Variablenreferenzen wie %Var% werden standardmäßig mit dem Inhalt der Variable ersetzt. ), C:\Meine Datei.txt
Demonstriert, wie das FTP-Hochladen mithilfe des systeminternen FTP-Befehls automatisiert werden kann. Dieses Skript wurde in Windows XP getestet.
FTPBefehlDatei := A_ScriptDir "\FTPBefehle.txt" FTPLogDatei := A_ScriptDir "\FTPLog.txt" FileDelete %FTPBefehlDatei% ; Falls das vorherige Ausführen vorzeitig terminiert wurde. FileAppend, ; Das Komma ist in diesem Fall erforderlich. ( open host.domain.com username password binary cd htdocs put %VarMitNamenDerZielDatei% delete EineAndereDatei.htm rename AlteDateiName.htm NeueDateiName.htm ls -l quit ), %FTPBefehlDatei% RunWait %ComSpec% /c ftp.exe -s:"%FTPBefehlDatei%" >"%FTPLogDatei%" FileDelete %FTPBefehlDatei% ; Löscht sie aus Sicherheitsgründen. Run %FTPLogDatei% ; Zeigt das Protokoll zum Untersuchen an.