
XP의 SSMS에서 다음과 같이 생성된 파일 목록이 있습니다.
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을 사용해 주세요.
이는 일회성 작업이며 중요한 경우 스크립트로 작성할 수 있는 작업이 아닙니다. 하지만 나중에 반복할 수도 있으므로 스크립트 작성이 나쁜 것은 아닙니다.
답변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;}