重命名Powershell中的文件,删除"_"后的所有内容



我正在重命名数百个文件,所有这些文件都因项目 ID 而异,然后是一堆文本。例如。。。

BBAT300_abcdefg.xlsBBAT400_abcdefg.xls

我需要从下划线

中删除所有内容,并包括下划线,所以结果是这样的:

BBAT300.xlsBBAT400.xls

我之前发现了这段代码...

Get-ChildItem -Name -Filter *.xls | foreach {[Regex]::Match($_,"^[^_]*").Value}

它似乎有效,但我无法让它实际重命名文件。我对脚本的了解很少甚至没有,所以这可能是一个简单的解决方案,我似乎找不到它。Powershell将在Powershell中显示结果,但实际上不会重命名文件。

您可以将此行通过管道连接到重命名项命令:

Get-ChildItem -Filter *.txt | Foreach-Object -Process { 
    $NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.txt'
    $_ | Rename-Item -NewName $NewName
}

编辑:更改它以支持任何位置

相关内容

  • 没有找到相关文章