1 (изменено: seriousstas, 2016-02-20 15:01:06)

Тема: AHK: Удаление файлов в подпапках с определённым расширением

Есть папка artists
В ней создаются автоматом папки(без дополнительных подпапок) с названием , заранее неизвестным .
Нужно удалить из всех этих подпапок файлы с расширение *.jpg

пока получилось удалять все :

SetWorkingDir %A_ScriptDir%
FileRemoveDir, %A_ScriptDir%\artists , 1

но сами папки нужно оставлять .

Помогите с этим.

2

Re: AHK: Удаление файлов в подпапках с определённым расширением

Почитайте здесь-http://www.script-coding.com/AutoHotkey/FileDelete.html

Win10 x64

3

Re: AHK: Удаление файлов в подпапках с определённым расширением

Folder = путь к папке
Loop, %Folder%\*, 2
	FileDelete, %A_LoopFileLongPath%\*.jpg
Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Удаление файлов в подпапках с определённым расширением

serzh82saratov
Спасибо !

5

Re: AHK: Удаление файлов в подпапках с определённым расширением

Вообщем, я разработал скрипт, легкий очень, буквально за 5 минут, которые очищает из папки "%temp%" и "temp" все, кроме папок, к тому же там можно изменить путь, и очищать папки помимо "%temp%" и "temp".
Вот код

Folder = C:\Users\имя_ползователя\AppData\Local\Temp
	FileDelete, %Folder%\*.*

Folder2 = C:\Windows\temp
	FileDelete, %Folder2%\*.*
Return
ExitApp

6

Re: AHK: Удаление файлов в подпапках с определённым расширением

flightlex, отлично, но код должен быть оформлен в соответствии с правилами, я отредактировал ваш пост. Кроме того, вместо

Folder = C:\Users\имя_ползователя\AppData\Local\Temp

можно просто

Folder := A_Temp
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: viviancels, 2022-10-07 11:22:42)

Re: AHK: Удаление файлов в подпапках с определённым расширением

Здравствуйте. У меня схожая задача, только вместо удаления - переименование файлов в подпапках. Скрипт лежит рядом с папкой "folder" и работает только для файлов в папке "folder", а до файлов в подпапках его работа не доходит. Где-то ошибка:


inFolder := A_ScriptDir "\folder"
outFolder := A_ScriptDir "\folder"
Loop, %inFolder%\*
{
    ; Новое имя
    newName := RegExReplace(A_LoopFileName, "\[(.*?)\].*.jpg", "$1")

    ; Переименование
    FileMove, %A_LoopFileFullPath%, %outFolder%\%newName%.jpg
}

return

Esc::
ExitApp

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

Еще вопрос: Так как у  FilePattern (A_ScriptDir "\folder") относительный путь, а не полный, то %A_LoopFileFullPath% здесь это папка "folder"?

8

Re: AHK: Удаление файлов в подпапках с определённым расширением

Просто уберите лишний .jpg. Здесь

FileMove, %A_LoopFileFullPath%, %outFolder%\%newName%.jpg

переменная newName уже содержит .jpg. Вы можете убедиться в этом, если перед данной строкой выведите её значение в MsgBox. Так же с помощью MsgBox вы легко можете посмотреть, что находится в переменной A_LoopFileFullPath.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: viviancels, 2022-10-07 14:23:33)

Re: AHK: Удаление файлов в подпапках с определённым расширением

teadrinker пишет:

Просто уберите лишний .jpg. Здесь

Тогда не будет расширения, так как в переменной его нет, в общем, я убрал .jpg из FileMove и перенес его в переменную, добавив после $1. Теперь можно запускать скрипт повторно, лишнего расширения не добавляется

Главная проблема в том, что не обрабатываются файлы в подпапках.

10

Re: AHK: Удаление файлов в подпапках с определённым расширением

viviancels пишет:

Тогда не будет расширения, так как в переменной его нет

А, да, не очень внимательно посмотрел.

viviancels пишет:

Главная проблема в том, что не обрабатываются файлы в подпапках.

В скрипте использован устаревший синтаксис перебора файлов. Смотрите тут, обратите внимание на параметр Mode.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11 (изменено: viviancels, 2022-10-07 15:08:30)

Re: AHK: Удаление файлов в подпапках с определённым расширением

teadrinker пишет:

В скрипте использован устаревший синтаксис перебора файлов. Смотрите тут, обратите внимание на параметр Mode.

Спасибо! Помогло.
Я уже сделал переименование в BulkRenameUtility, там есть поддержка regex (с включенной галкой v2), но запускать ее каждый раз дольше, чем запустить скрипт AHK.