Добрый день/вечер,
Может быть, кто-то может помочь, и, возможно, это может помочь кому-то еще. Если рассмотреть пример ниже:
01022015- БЛАБЛАБЛА 04022018 - БЛАБЛАБЛАБ 02012016 - Блаблабла
Что я хотел бы сделать, так это искать 02, когда он локализован на третьем и четвертом символе имени файла. Что-то вроде поиска "02" после второго символа.
Таким образом, я смогу отсортировать все файлы за февраль по отдельности, а затем переименовать их пакетом правильно.
Это осуществимо? Ниже приведен пример поискового запроса, который может послужить основой для дальнейшей разработки.
Спасибо уже ~"(4)"
решение1
найдите 02, если он находится на третьем и четвертом символе имени файла.
Используйте ?
символ шаблона, который означает «строго 1 символ»:
DIR ??02*.*
решение2
Я думаю, что вам повезло в этот раз. Регулярное выражение в этом случае довольно простое и его можно реализовать даже вМайкрософт Окна 10Препроцессор командной строки.
Регулярное выражение — ??02*
.
Поэтому вы можете смело пойти и ввести команду операционной системы, например RENAME ??02* <New Name>
.
решение3
for /f tokens^=* %F in ('where /r . "??02*.*"')do rename "%~F" "Some_New_Name%~xF"
- Выход:
rename "G:\SUPER_USER\Q59446122\310220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\110220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\100220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\170220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\030220218.txt" "Some_New_Name.txt"
Попробуйте это для текущей папки:
for /f tokens^=* %F in ('where "??02*.*"')do rename "%~F"
- Выход:
rename G:\SUPER_USER\Q59446122\310220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\110220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\100220218.txt Some_New_Name.txt