2016-10-18 49 views
1

的中間刪除號碼我有400個TIF文件類似於名稱:從文件名

  • 121941_006419_INDUNC.tif
  • 121948_007193_DRILLG.tif
  • 121950_007321_INDUNC.tif

,我需要有一個下劃線和6個隨機數刪除看起來像:

  • 121941_INDUNC.tif
  • 121948_DRILLG.tif
  • 121950_INDUNC.tif

我已經搜查,我已經找到了唯一的解決方案涉及軟件下載其中我公司不允許。

有沒有辦法使用批處理文件從這些文件中刪除這七個字符?

+1

我以某種方式懷疑這個問題是關於DOS(如在磁盤操作系統中)。 Windows命令提示符和PowerShell都沒有任何關係。 –

+0

DOS和命令提示符經常互換使用。我認爲大多數人意識到正在討論的內容。 – Nasir

+0

Ansgar對於缺少關於DOS的適當詞彙表感到抱歉。我的意思是命令提示符。至於重複,那篇文章沒有回答我的問題,因爲它在每個文件中搜索相同的字符,並且我的文件在每個文件中有6個隨機數字,每個文件都由下劃線括起來。 –

回答

2

由於您使用的是標籤,這裏解決方案:

使用Get-ChildItem cmdlet可以通過.tif檢索過濾文件,並使用Rename-Item cmdlet來一個簡單的正則表達式重命名這些替代:

Get-ChildItem -Path c:\tmp -Filter '*.tif' | 
    Rename-Item -NewName { $_.Name -replace '_\d+' } 
+0

謝謝Martin。你的代碼工作完美,解決了我的問題。我不明白什麼_ \ d +的意思。你有什麼可以解釋的嗎? –

+0

gci -Path c:\ temp -File -Filter「* .tif」| foreach {$ arr = $ _。name -split「_」; Rename-Item $ _。FullName($ _。DirectoryName +「\」+ $ arr [0] +「_」+ $ arr [2])} – Esperento57

+1

@ThomasWard'_ \ d +'是一個正則表達式匹配「* an下劃線,後跟一個或多個數字*「。請參閱[這裏](https://regex101.com/r/5LQIVY/1)如何匹配您的文件名。 – TessellatingHeckler