1

У меня есть список файлов, созданных из 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, простой старой партии или чего-то еще. Если вы можете сделать это с помощью регулярного выражения, это было бы увлекательно, но все, что работает там тоже. Я хочу цели, а не средства, да? Просто не уверен, какую команду использовать. Однако я не хочу загружать инструмент для этого. Родная XP SP3 пожалуйста.

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

2 ответа2

4

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

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, а затем переименуйте его, используя переставленное имя файла.

4

Необработанный сценарий PS для ударов ногами:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .