XP'de, bir dosya adının bir kısmını kaldırmak ve bir önek eklemek için regex veya benzeri bir dosya kullanarak bir dizini nasıl yeniden adlandırabilirim?


1

XP'de SSMS'den oluşturulan dosyaların bir listesi şöyle:

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

Onları yeniden adlandırmak istiyorum:

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

Powershell'e, sade eski partiye veya her neyse. Büyüleyici bir regex ile yapabilirseniz, ama orada ne işe yararsa. Sonları istiyorum, araçları değil, tamam mı? Sadece hangi komutun kullanılacağından emin değilim. Ancak, bunu yapmak için bir araç indirmek istemiyorum. Yerel XP SP3 lütfen.

Bu tek seferlik bir iş, eğer önemliyse yazılacak bir şey değil. Ama ileride tekrarlayabilirim, bu yüzden komut dosyası kötü bir şey değil.

Yanıtlar:


4

Bunu aynı dizinde bulunan bir toplu iş dosyasına koyun ve çalıştırın:

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

Bu dosya adını "." İle böler. %% A ile %% D değişkenlerini kullanarak karakter ve sonra yeniden düzenlenen dosya adını kullanarak yeniden adlandırın.


1
Kutsal bok, bu harika.
jcolebrand

1
Ha teşekkürler. Dosya adları oldukça tutarlı olduğu sürece, bu işlem işe yarayacaktır.
Ryan,

4

Kicks için ham bir PS betiği:

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

oooh, GCI ne yapar? "Get-ChildItem" nice
jcolebrand 14:10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.