1

Тема: AHK: сохранение массива файлов

Прошу помощи у сообщества:
Некая программа сохраняет результат в один и тот же файл. Задача сохранить массив этих файлов для дальнейшей работы. Опыта кодирования не имею, задачу решил в лоб лежащими на поверхности в мануале средствами:

FileCopy C:\Main Backup4\xxx, C:\Main Backup5\
Sleep 500
FileCopy C:\Main Backup3\xxx, C:\Main Backup4\ 
Sleep 500
FileCopy C:\Main Backup2\xxx, C:\Main Backup3\ 
Sleep 500
FileCopy C:\Main Backup1\xxx, C:\Main Backup2\ 
Sleep 500
FileCopy C:\Main Backup\xxx, C:\Main Backup1\
Sleep 500

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

2

Re: AHK: сохранение массива файлов

Koto, уточните. Вы пишете, что программа сохраняет в один и тот же файл. Но ведь один файл лежит в Main Backup1, другой в Main Backup2 и т. д. Значит это не один и тот же файл.

3

Re: AHK: сохранение массива файлов

Программа сохраняет в один и тот же файл, в данном примере в Main Backup. Следующее сохранение перепишет предыдущее, для того чтобы его не потерять, я копирую его с помощью ahk в Main Backup1, а из Main Backup1 еще более раннее сохранение в Main Backup2 и так далее).

Я не нашел в просторах инета способа переименовать файл и сохранить его под новым именем с помощью ahk, это было бы простейшее решение задачи.

4

Re: AHK: сохранение массива файлов

И перемещение, и переименование можно выполнить командой FileMove.

5

Re: AHK: сохранение массива файлов

Все верно, но только я не нашел способа переименования  и сохранения не одного файла, а последовательности файлов, каждый под своим именем

FileMove, C:\File Before.txt, C:\File After.txt ; Переименовать одиночный файл.

В поле File After необходимо задать какую-либо переменную , например 1, 2 и так далее.

6 (изменено: serzh82saratov, 2019-08-04 21:55:19)

Re: AHK: сохранение массива файлов

Folder = L:\Test\Backup   ; L:\Test - папка, Backup - название файлов
i := 0

1::
	Str = 
	Loop, Files, %Folder% (*).txt
		Str .= RegExReplace(A_LoopFileFullPath, "\Q" Folder "\E \((\d+)\)\.txt", "$1") "`n"  
	Sort, Str, R N
	Loop, Parse, % Trim(Str, "`n"), `n 
		FileMove, % Folder " (" A_LoopField ").txt", % Folder " (" A_LoopField + 1 ").txt", 1 
	FileMove, %Folder%.txt, %Folder% (1).txt, 1
	FileAppend, % ++i, %Folder%.txt
	MsgBox % "Записано: " i
	Return

АП:
Если не понятно, создайте папку L:\Test, запустите скрипт, нажмите несколько раз на "1", смотрите файлы с именем Backup в папке.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

7

Re: AHK: сохранение массива файлов

serzh82saratov, благодарю за помощь).

Далеко не все понятно, но вставил в свой код, подкорректировал немного и все пошло как надо.

Спасибо, успехов!