
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 回限りの仕事であり、スクリプト化できるものではありません。ただし、将来的に繰り返す可能性もあるため、スクリプト化可能であることは悪いことではありません。
答え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;}