PowerShell重命名文件名并保留扩展名
我在这里找到了我需要的代码PowerShell重命名文件名并保留扩展名,powershell,Powershell,我在这里找到了我需要的代码 $files = gci -filter "*.txt" |select fullname foreach ($file in $files) { $filename = $file.fullname $newFilename = $filename.Replace(".", " ") rename-item $filename $newFilename } 我需要代码来更改文件名并保留文件扩展名。上面的代码将“.”替换为“”。我可以将其编码为再
$files = gci -filter "*.txt" |select fullname
foreach ($file in $files) {
$filename = $file.fullname
$newFilename = $filename.Replace(".", " ")
rename-item $filename $newFilename
}
我需要代码来更改文件名并保留文件扩展名。上面的代码将“.”替换为“”。我可以将其编码为再次重命名该文件以添加回扩展名。只是想看看有没有更好的方法
干杯把
'old'
&'new'
换成你想要的任何东西
删除-Whatif
以应用该命令
Get-ChildItem -Path C:\temp\files -Filter *.txt |
Rename-Item -NewName {$_.Basename.Replace("old","new") + $_.extension} -WhatIf -Verbose
如果您已经在要重命名所有文件的目录中,而不考虑其扩展名,这应该会有所帮助
Dir | foreach{$i=1}{Rename Item$\-NewName(({0:D5}+$\.Extension)-f$i++)}
如果foreach
之后的第一个块用作初始化块(如果跳过它,该值将从默认值0开始),{0:D5}
表示第一个参数,其中0
最多填充5个空格。您也可以像{0:00000}
那样编写它,但是D
对于十进制值来说只是更短。不用说,如果不需要任何填充,只需使用{0}
注意:您可能需要添加
-recurse
参数(在Dir
之后,如果您也要重命名目录的任何子文件夹中的文件。您还可以在代码末尾使用-whatif
参数查看更改的预览。您想将文件名更改为什么?是的,我想通过替换字符跨文件夹运行脚本来重命名文件。My code会的,但如果我想替换的话它将更改文件扩展名。我只是认为我可以使用$\ basename,但我不能。Cheers正是我在公交车上时的想法,我想使用basename。Cheers如果我想添加一些要重命名的内容,我是否可以使用与上面相同的内容执行另一行,或者我可以添加到上面。如果你想添加其他命令,那么你需要它们在一个循环中Foreach Object
。您可以将每个命令放在一个单独的行上好的,我可以这样做,我在尝试使用“”时不断出错说它不能为空。我想用空格替换。我只是在我的系统上尝试了一下,没有出现错误。如果很难在评论中发布错误,只需打开一个带有完整命令的新问题以及错误消息。