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

时间:2016-07-14 17:46:06

标签: file powershell file-rename

我正在重命名几百个文件,所有文件都随项目ID而变化,然后是一堆文本。例如......

BBAT300_abcdefg.xls BBAT400_abcdefg.xls

我需要删除下划线中的所有内容,并在下面加上下划线,所以结果如下:

BBAT300.xls BBAT400.xls

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以将此行传递给重命名项目命令:

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

编辑:将其更改为支持任何位置