2017-05-31 4 views
1

In Fenster ISE powershell Ich versuche, eine Zeichenfolge in einer Menge von Dateien Namen und Ordner zu ersetzen Namen Beispiel habe ich Dateien und Ordner wiewindows 7 Suchen und Ersetzen-String in Dateien und Ordnern

foo_file1.txt 
file2_foo.php 
file3_foo_file.js 
foo/folder1/file.ext 
folder2/file4_foo.doc 
foo_folder/file5.ppt 
folder/foo/file_foo.jpg 

Ich möchte zum Beispiel alle "foo" in "bar" zu ändern. Ich benutzte Windows Powershell-Befehl

$dir = "the Path of folder Parent" 
CD $dir 
Get-Childitem -recurse | 
Where-Object {$_.Name -match "foo"} 
rename-item -NewName { $_.Name -replace "foo", "bar" } 

aber dieser Befehl funktioniert nicht

Antwort

1
Get-Childitem -recurse | Where-Object {$_.Name -match "foo"} | % { Rename-Item -NewName ($_.Name -replace "foo", "bar") -Path $_.FullName } 

Es scheint, dass Sie die -Path Parameter von Rename-ITem vergessen.

Hoffe, dass hilft.

1

Sie können wie dieses auch tun:

$dir = "C:\folderpath" 
(Get-Childitem $dir -recurse |Where-Object {$_.Name -match "foo"}) | 
rename-item -NewName { $_.BaseName -replace "foo", "bar" } 
Verwandte Themen