我环顾四周,用Google搜索解决方案,但似乎没有什么可以做我想要的。
我每天都有40个左右的文件,在我需要删除的文件名的开头有一个日期时间字符串。
文件格式为: 的 YYYYMMDD_HHMM_filenametokeep.csv
我想首先查找以20开头的文件夹中的文件(因为文件名中是YYYY的开头),然后通过从这些文件名中删除前14个字符来重命名它找到的所有文件。
理想情况下,我想在PowerShell中执行此操作,因此我可以将其作为SQL作业中的一个步骤。
有没有人对此有任何想法/解决方案?
非常感谢提前
答案 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个字符。