Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "FileAppend", в содержании - "File, Directory and Disk Management" - "FileAppend", v1.0.46.09.

Ник переводчика: YMP.

Настоящее имя переводчика: Юрий Попов.

FileAppend

Добавляет текст к файлу (создавая файл при необходимости).

FileAppend [, Text, Filename]

Параметры

Text Текст, который будет добавлен. Этот текст может включать в себя переводы строки (`n) для перехода на новую строку. Вдобавок длинная строка может быть разбита на несколько более коротких посредством секции продолжения.

Если параметр Text пустой, будет создан пустой файл (если файл уже существует, будет обновлено его время изменения).

Если Text задан как %ClipboardAll% или как другая переменная, которой ранее было присвоено значение ClipboardAll, файл будет в любом случае переписан целиком (т.е. команда FileDelete здесь не нужна).
Filename Имя целевого файла. Если полный путь к нему не задан, он ищется/создаётся в папке, указанной в переменной A_WorkingDir.

Binary mode: двоичный режим. Для записи в двоичном (а не в текстовом) режиме поставьте звёздочку перед именем файла. Это приведёт к тому, что каждый символ перевода строки (`n) будет записан в виде одиночного символа перевода строки (LF) вместо стандартной для Windows комбинации CR+LF (возврат каретки + перевод строки). Пример: *C:\My Unix File.txt

Если файл не был уже открыт (не находится в цикле чтения файла), он автоматически открывается в двоичном режиме, если Text содержит пары символов возврата каретки и перевода строки (`r`n). Другими словами, опция, включаемая звёздочкой, задействуется автоматически. Однако явное указание звёздочки, если Text содержит `r`n, повышает производительность, поскольку программе не нужно сканировать Text в поисках `r`n.

Standard Output (stdout): указание звёздочки (*) вместо имени файла приведёт к тому, что текст будет послан в стандартный выходной поток (stdout). Такой текст может быть перенаправлен в файл, передан по конвейеру другой программе или перехвачен некоторыми текстовыми редакторами (см. описание директивы #ErrorStdOut). Например, следующая команда может быть введена в окне командной строки:
"%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" > "Error Log.txt"
Однако текст, посланный в стандартный выходной поток, не будет виден в том же окне, в котором вводится команда. Это можно обойти, направив вывод скрипта по конвейеру другой команде или программе. Например:
  1. "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" | more
  2. For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script .ahk""') do @Echo %L

ErrorLevel

Равен 1, если были проблемы, иначе 0.

Примечания

Для того, чтобы полностью переписать существующий файл, удалите его с помощью FileDelete перед тем, как использовать FileAppend.

Примеры

FileAppend, Ещё одна строка.`n, C:\Мои документы\Test.txt

; Следующий пример использует секцию продолжения, чтобы скрипт было удобнее читать и редактировать.
FileAppend,
(
Строка текста.
По умолчанию, возврат каретки (Enter) между этой строкой и предыдущей будет записан в файл.
    В начале этой строки находится табуляция; по умолчанию, эта табуляция также записывается в файл.
Ссылки на переменные наподобие %Var% по умолчанию раскрываются.
), C:\My File.txt 

; Следующий пример демонстрирует, как можно автоматизировать загрузку на FTP, используя встроенную
; в операционную систему команду для работы с FTP. Скрипт проверялся в Windows XP и 98se.

FTPCommandFile = %A_ScriptDir%\FTPCommands.txt
FTPLogFile = %A_ScriptDir%\FTPLog.txt
FileDelete %FTPCommandFile% ; На случай, если предыдущий запуск был прерван преждевременно.

FileAppend,
(
open host.domain.com
username
password
binary
cd htdocs
put %ПеременнаяСодержащаяИмяЦелевогоФайла%
delete SomeOtherFile.htm
rename OldFileName.htm NewFileName.htm
ls -l
quit
), %FTPCommandFile%

RunWait %comspec% /c ftp.exe -s:"%FTPCommandFile%" >"%FTPLogFile%"
FileDelete %FTPCommandFile% ; Удалить по соображениям безопасности.
Run %FTPLogFile% ; Открыть лог-файл для просмотра.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.