2016-12-05 47 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}