2016-12-05 51 views
0

好吧,我有一个文件夹充满文件。这些文件中的每一个文件都添加了12个字符的扩展名(日期时间戳)(每天将文件传送到另一个系统时生成)。使用Powershell删除随机生成的文件扩展名

所以我有文件

abcd.txt.161205042500

efgh.txt.112845035688

我想PS大规模重命名这些文件。基本上修剪文件夹中每个文件的文件名的最后13个字符。

我发现的所有东西都是可以替换字符串的地方,但我没有任何东西可以在这里搜索。

任何帮助表示赞赏。

+0

如果什么名字不剥离13字符后延独特之处? – LotPings

+0

在这种情况下不需要担心。我们每天获得1个文件,日期是文件名。它会被拾取,并添加日期/时间扩展。 – uneasyrider

+0

可能的重复[如何在PowerShell中没有扩展名的文件路径?](http://stackoverflow.com/questions/14770587/how-do-i-get-a-file-path-without-extension-in -powershell)和[remove-path-and-extension-from-filename-in-powershell](http://stackoverflow.com/questions/12503871/)和[file-output-in-powershell-without-extension]( http://stackoverflow.com/questions/13370055/) – TessellatingHeckler

回答

1

如果输出看起来正确,取出-whatif

Get-ChildItem *.txt.* -file |Foreach { if ($_.Extension.length -eq 13) { 
    rename-item $_.FullName -NewName $_.Basename -whatif 
    } 
} 
0
Get-ChildItem "c:\temp" -file | where name -match ".\.txt\.[0-9]{12}$" | %{rename-item $_.FullName $_.Basename} 

短版

gci "c:\temp" -file | ? name -m ".\.txt\.[0-9]{12}$" | %{rni $_.Fullname $_.Basename}