Что нового

Подправить имена файлов

lemonia

Новичок
Сообщения
126
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:
Есть папка с именами файлов типа:
Детский слух, падение, высокие частоты и антибиотики. Исправление слуха №152.mp4
Динамический диапазон слуха и тугоухость. Исправления слуха №124.mp4
Высокие частоты как индикатор прогресса. Исправления слуха №120.mp4
Гиперакузия. Исправления слуха №136.mp4
Глуховатые люди. Исправления слуха №119.mp4
Глухота (приобретенная) -- это просто очень большое падение. Исправления слуха №146.mp4
Готовность взаимодействовать с тихими звуками. Исправления слуха №181.mp4

Нужно переставить порядковый номер в начало.
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
$folder = 'c:\test\'
$search = FileFindFirstFile($folder & '*.mp4')
While 1
	$item = FileFindNextFile($search)
	If @error Then ExitLoop
	$name = StringRegExpReplace($item, '(.*)(№\d+)','$2 $1')
	If Not @error Then FileMove($folder & $item, $folder & $name)
WEnd
 
A

Alofa

Гость
Khaibit
Код:
; ...
While 1
; ...
	$name = StringRegExpReplace($item, '(.*)(№\d+)','$2 $1') ; Если скрипт встретит уже переименованный файл, то после цифр добавится еще один пробел.
	FileMove($folder & $item, $folder & $name) ; Функция выполняется тотально для всех файлов
WEnd
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Alofa
Если от пробела отказаться вовсе, то читаемость имени файла снизится, касательно "тотальности" поправил.
 
A

Alofa

Гость
Khaibit
Нет проверка на @error тут не катит.
Я бы сделал так:
Код:
; ...
While 1
; ...
    $name = StringRegExpReplace($item, '(.+)\h(№\d+)','$2 $1') ; Заодно и оставшийся пробел в конце строки убирается
    If @extended Then FileMove($folder & $item, $folder & $name)
WEnd
 
Верх