删除文件名的开头部分

时间:2019-05-28 16:34:41

标签: powershell

我有多个文件要编辑。

它们看起来像

20190122-233715-886_tlog.354.2019012223043

前缀主要是日期和时间戳以及处理ID。

我需要成为

tlog.354.20190122230435

2 个答案:

答案 0 :(得分:0)

您可以使用替换功能。 例如:

 "20190122-233715-886_tlog.354.2019012223043" -replace "^.*_",""

会返回

 tlog.354.2019012223043

因此您可以执行以下操作:

 $file=Get-Item -Path "D:\temp\20190122-233715-886_tlog.354.2019012223043.txt"
 Rename-Item $file -NewName $($($file.Name) -replace "^.*_","")

文件将被重命名

答案 1 :(得分:0)

将正则表达式与捕获组配合使用可以使您
在单个管道中重命名。

Get-ChildItem *_tlog.* | 
 Where-Object Name -match '^\d{8}-\d{6}-\d+_(tlog.*)$'|
   Rename-Item -NewNAme {$Matches[1]} -WhatIF

如果输出看起来正常,请删除-WhatIf

使用别名运行的示例(在我的德语语言环境中):

PS> gci *_tlog.*|? Name -match '^\d{8}-\d{6}-\d+_(tlog.*)$'|Ren -NewName {$Matches[1]} -WhatIF
WhatIf: Ausführen des Vorgangs "Datei umbenennen" für das Ziel 
"Element: A:\Test\20190122-233715-886_tlog.354.2019012223043 
    Ziel: A:\Test\tlog.354.2019012223043".