PowerShell重命名文件名并保留扩展名

时间:2015-09-21 04:01:26

标签: powershell

我在这里找到了代码,它可以满足我的需要

$files = gci -filter "*.txt" |select fullname
foreach ($file in $files) {
   $filename = $file.fullname
   $newFilename = $filename.Replace(".", " ")
   rename-item $filename $newFilename
} 

我要求代码更改文件名并保留文件扩展名。上面的代码取代了"。"用" &#34 ;.我可以对其进行编码以重新命名该文件以添加扩展名。只是想看看是否有更好的方法。

干杯

2 个答案:

答案 0 :(得分:6)

更改'old'& 'new'无论你想要什么 删除-Whatif以应用命令。

Get-ChildItem -Path C:\temp\files -Filter *.txt | 
 Rename-Item -NewName {$_.Basename.Replace("old","new") + $_.extension} -WhatIf -Verbose

答案 1 :(得分:0)

如果您已经在要重命名所有文件的目录中,而不论其扩展名如何,这都将有所帮助。

Dir | foreach {$i=1}{Rename-Item $_ -NewName (('{0:D5}'+$_.Extension) -f $i++)}

foreach之后的第一个块用作初始化块(如果您跳过它,则值将从默认值0开始),{0:D5}代表第一个参数,其中填充了0最多5个空格。您也可以像{0:00000}这样写,但是D对于十进制值来说较短。不用说,如果您不想进行任何填充,请使用{0}

PS:您可能还需要添加-recurse参数(如果要重命名目录的任何子文件夹中的文件,请在Dir之后。也可以使用-whatif代码末尾的参数,以查看更改的预览。