查找以字符串开头的文件,并从文件名Powershell中删除X字符

时间:2014-10-09 11:27:29

标签: powershell rename

我环顾四周,用Google搜索解决方案,但似乎没有什么可以做我想要的。

我每天都有40个左右的文件,在我需要删除的文件名的开头有一个日期时间字符串。

文件格式为: 的 YYYYMMDD_HHMM_filenametokeep.csv

我想首先查找以20开头的文件夹中的文件(因为文件名中是YYYY的开头),然后通过从这些文件名中删除前14个字符来重命名它找到的所有文件。

理想情况下,我想在PowerShell中执行此操作,因此我可以将其作为SQL作业中的一个步骤。

有没有人对此有任何想法/解决方案?

非常感谢提前

2 个答案:

答案 0 :(得分:1)

Ls d:\path\to\folder\20*.csv | ren -new { $_.name -replace '^.+?_.+?_' }

或者您也可以使用:

Ls d:\path\to\folder\20*.csv | ren -new { $_.name -replace '^.{14}' }

答案 1 :(得分:0)

如果你真的打算删除前14个字符,你可以使用.SubString

删除
Get-ChildItem D:\path\to\folder\20*.csv | ForEach-Object{ 
    Rename-Item -Path $_ -NewName ($_.Name.SubString($_.Name.Length -14))}

TechNet article讨论.Substring被用作VBS Right方法。它将返回一个字符串减去前14个字符。