Было зимнее морозное утро, когда я пришел на работу для импорта отчетов в VelesCo.F, когда обнаружил, что в импорте допущен баг: на почту приходят отчеты за день, соответствующие формату день.месяц.год, а загрузка начиналась с файла 00.месяц.год, где 00 — соответствовало -му дню месяцу. Таким образом вся нумерация файлов поплыла на 1 день. Что же делать? Переименовывать полсотни файлов — долго. Погуглил в поисках программ-переименовщиков. Скачал первую попавшуюся и… в ней не оказалось нужного функционала. Я понял, что на это можно потратить весь день. И написал простенький скрипт в 20 строк кода на VBScript на все случаи жизни:
set FSO=WScript.CreateObject("Scripting.FileSystemObject") For i=1 To 31 start = CStr(i) newstart = CStr(i-1) If i<=10 Then If i < 10 Then start = "0" + start newstart = "0" + newstart End If pattern = ".11.2018.x1" If FSO.FileExists(start + pattern) Then If FSO.FileExists(newstart + pattern) = False Then MsgBox(start + pattern + " To " + newstart + pattern) FSO.GetFile(start + pattern).Name = newstart + pattern End If End If Next
И вуаля. Эти двадцать строк кода при правильной адаптации и применении могут практически все, на что не способны даже коммерческие программы-ренеймеры.
В данном конкретном случае она берет каждый файл с шаблона *.11.2018.X1
и уменьшает значение числа перед 1й точкой на 1. Вместо *.11.2018.X1
можно подставить любой шаблон имени. Вперед
Как вы догадались, шаблон мы указываем в строке pattern = ".11.2018.x1"
, а newstart - указываем новое значение первых двух символов имени файла. Дальше не сложно
Как пользоваться?
Нажимаем Win+R
, вводим notepad и нажимаем Enter
. Перед нами откроется чистый текстовой документ. Копируем туда содержимое скрипта и сохраняем с разрешением .vbs
в папку с файлами, которые надо переименовать. Переходим в эту папку и запускаем скрипт