首页 > 解决方案 > 如何一次删除多个文件名中下划线之前的所有字符?

问题描述

我在一个文件夹中有很多文件,如下所示:

test_123.txt

testing_456.txt

再次测试_789.txt

如何一次删除所有文件名之前的所有字符(包括下划线)?我有大约 2500 个需要截断的文件,但如果可能的话,我想在命令提示符或 powershell 中进行截断。

我希望它们看起来像这样:

123.txt

456.txt

789.txt

标签: powershellcmdcommandcommand-prompt

解决方案


以下是你的做法。

$Files = Get-ChildItem -Path 'Path\To\Folder' -File 

foreach ($File in $Files) {
    $Split = $File.Name -split '_'    
    if ($Split.Count -gt 1) {
        Rename-Item -Path $File.FullName -NewName $Split[1]
    }
}

请注意,如果您有名称冲突(例如:Hello_123.txt、World_123.txt),将会有例外,但由于您提到数字是唯一的,这应该可以解决问题


推荐阅读