2016-09-18 183 views
0

我想使用PowerShell例如批量文件重命名:重命名批量文件

  • my-file-name-photo.jpgmy-file-name-new-photo.jpg
  • this file name photo.jpgthis file name new photo.jpg
  • this is best image.jpgthis is best new image.jpg

「新」 是恩。單詞我想添加在文件名中。

+0

第一個示例在單詞之間有一個「-',而另一個空格。決定你想要什麼... –

+0

是的一些文件的名稱與 - 一些空間..這不是問題,我可以管理我的自我。請提供空間名稱文件的幫助。 – deva

回答

1
$names = 'my-file-name-photo.jpg', #'my-file-name-new-photo.jpg' 
     'this file name photo.jpg', #'this file name new photo.jpg 
     'this is best image.jpg'  #this is best new image.jpg 

$names | ForEach { $_ -replace '(.)(photo|image)', '$1new$1$2' } 

這將做你所描述的字符串替換。它會查找任何字符(空格或短劃線),然後查找「照片」或「圖片」,並使用相同的分隔符將「新」放在前面。

Rename-Item(Martin Brandl的回答)一起使用來重命名文件,例如,在PowerShell提示符下:

cd c:\users\yourname\Documents\Photos 
Get-ChildItem | Rename-Item -NewName { $_.Name -replace '(.)(photo|image)', '$1new$1$2' } 
+0

嗨感謝您的回答和你的時間。在文件夾中有大約200個文件,所以在這裏我需要把所有的文件名放在$ names ='my-file-name-photo.jpg',#'my-file-name-new-photo.jpg' '這個文件名photo.jpg',#'這個文件名new photo.jpg '這是最好的image.jpg'#這是最好的新圖片.jpg或者它會將所有的文件重命名爲 – deva

+0

我已經編輯了一些東西來獲取文件並重命名它們。 – TessellatingHeckler

+0

優秀,再次感謝! – deva

1

使用Get-ChildItem cmdlet檢索文件並將其傳送到Rename-Item cmdlet。它使用空格(如您的評論請求),例如:

Get-ChildItem 'c:\tmp' | 
    Rename-Item -NewName {('{0} new{1}' -f $_.BaseName, $_.Extension) } 
+0

感謝它的工作,但沒有我需要..它在文件名的末尾添加新的像我的名字照片new.jpg不喜歡我的名字新photo.jpg – deva

+0

任何建議這樣做... – deva