我在这里找到了代码,它可以满足我的需要
$files = gci -filter "*.txt" |select fullname
foreach ($file in $files) {
$filename = $file.fullname
$newFilename = $filename.Replace(".", " ")
rename-item $filename $newFilename
}
我要求代码更改文件名并保留文件扩展名。上面的代码取代了"。"用" &#34 ;.我可以对其进行编码以重新命名该文件以添加扩展名。只是想看看是否有更好的方法。
干杯
答案 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
代码末尾的参数,以查看更改的预览。