Что нового

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

djjuice

Новичок
Сообщения
1
Репутация
0
Задача.
Исх.данные: На диске по пути находится программа C:\zadanie\proga.exe
В той же папке находится TXT файл со списком ссылок построчно. C:\zadanie\ssylki.txt

1.Задача состоит в том чтобы вырезать первую строчку со ссылкой,нажать Del, сохранять с изменением TXT
2.Переключиться на EXE, вставить вырезанную ссылку, нажать Enter
3.Далее сложное: обнаружить по пути C:\zadanie\ только что созданную папку EXE т.е. нужно найти самую последнюю по созданию (не знаю как провести поиск папки по дате изменения,по имени папки тоже нельзя т.к. имя всегда разное,также по этому пути есть папки для самого EXE они старые по дате создания и изменения!)
4.Потом перейти в эту папку и в ЦИКЛЕ проверять когда будет в этой папке ТОЛЬКО ДВА ФАЙЛА (только так можно понять что программа закончила выполнение ибо при работе там много временных файлов и по окончании она сама удаляет оставляя нужные только ДВА)
5.И в самом конце требуется переименовать эту папку. Имя для папки содержится в самой ссылке и она ЕЩЕ в БУФЕРЕ,
к примеру https://ssajt.com/books/fet-stixi требуется чтобы в итоге папка назвалась fet-stixi

Примерный список ssylki.txt:

Пояснения:
1. Думаю эта реализация будет проще чем держать открытым txt и считывать строчки,хочется просто простоты коды и безотказности.
Клавиша Del подтягивает пред.строчку выше. Таким образом при повторном открытии вторая строчка будет уже на первом месте.

2. Переключение банально клавишей Alt+Tab, анализировать окна думаю не нужно т.к. комп будет работать сам и мешать ему и другого софта запущено не будет.
3. Это для меня сложно. Ни по имени папку узнать нельзя. и она никак именем увы не связана с ссылкой...т.е. будет создана любая te4hefbv папка,следующая dkrhtvgkvxfhgc3353434 тоесть связи в именах и узнать ее нет
4. Нужно хотябы в течении 10-15 сек делать проверку на ДВА файла если БОЛЬШЕ уходить в ожидание-цикл-10-15сек если ДВА то переходить в пункту 5.
5. После того как в папке ДВА файла нужно переименовать папку,ссылка будет досих пор в буфере. И нужно будет опять найти эту папку и переименовать
Может банально F2 вставив ссылку к примеру https://ssajt.com/books/fet-stixi она преобразуется httpsssajt.combooksfet-stixi и удалить httpsssajt.combooks
Или похимичить ссылкой на удаление символов https://ssajt.com/books/ а остальное после нужно вставить именем папки т.к. оно будет у всех папок одинаково. Думаю понятно описал.
Или удалить 24 символа (https://ssajt.com/books/) в буфере а остальное вставить,нужно то что после books/ только.
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
  1. Считываем весь файл в массив - _FileReadToArray, а затем делаем действия в цикле для каждой строки
  2. Для надежности нужно отправлять команду конкретному элементу ControlSetText
  3. Думаю, что Вам известно после какого действия создается новая папка. Нужно получить перечень папок до этого действия и после, новая папка будет в разнице результатов.
  4. Цикл с подсчетом файлов и выход из него, когда в папке будет 2 файла
  5. $Arr = StringSplit('https://ssajt.com/books/fet-stixi', '/'), результат будет в $Arr[$Arr[0]]
Сомневаюсь, что без данных о proga.exe Вам дадут рабочий код.
Нужны данные из AutoIt v3 Window Information:
>>>> Window <<<<
Title: (название окна)
>>>> Control <<<<
ClassnameNN: (название и номер элемента)
 
Верх