Как в XP переименовать каталог с файлами, используя регулярное выражение или что-то подобное, чтобы удалить часть имени файла и добавить префикс?

Как в XP переименовать каталог с файлами, используя регулярное выражение или что-то подобное, чтобы удалить часть имени файла и добавить префикс?

У меня есть список файлов, сгенерированных из SSMS в XP, вот такой:

dbo.mysproc1.StoredProcedure.sql
dbo.mysproc2.StoredProcedure.sql
dbo.mySproc3.StoredProcedure.sql
... you get the drift

Я хочу переименовать их в:

proc.dbo.mysproc1.sql
proc.dbo.mysproc2.sql
proc.dbo.mySproc3.sql
... you get the drift

Я открыт для powershell, обычного старого пакета или чего угодно. Если вы можете сделать это с помощью регулярного выражения, это было бы увлекательно, но что бы там ни было, это тоже работает. Мне нужны цели, а не средства, да? Просто не уверен, какую команду использовать. Однако я не хочу загружать инструмент для этого. Native XP SP3, пожалуйста.

Это одноразовая работа, а не то, что можно записать, если это важно. Но я могу повторить это в будущем, так что записать — это не так уж и плохо.

решение1

Поместите это в пакетный файл, который находится в том же каталоге, и запустите:

for /f "delims=. tokens=1,2,3,4" %%A IN ('dir /b *.sql') DO RENAME %%A.%%B.%%C.%%D proc.%%A.%%B.%%D

Это разделит имя файла по символу «.» с помощью переменных от %%A до %%D, а затем переименует его, используя переставленное имя файла.

решение2

Сырой скрипт PS для прикола:

gci | foreach { $f = $_; $split = $f.Name.Split("."); $n = [string]::join(".", "proc", $split[0], $split[1], "sql")); ren $f $n;}

Связанный контент