我想重新命名窗口中使用powershell多個文件。 我想重命名替換此模式:替換「123456-name」模式的正則表達式是什麼?
「123456-the_other_part_of_the_string」。 例子:
409873-doc1.txt
378234-doc2.txt
1230-doc3.txt
基本上我要裁剪的號碼+ ' - ' 的事情。
我想重新命名窗口中使用powershell多個文件。 我想重命名替換此模式:替換「123456-name」模式的正則表達式是什麼?
「123456-the_other_part_of_the_string」。 例子:
409873-doc1.txt
378234-doc2.txt
1230-doc3.txt
基本上我要裁剪的號碼+ ' - ' 的事情。
Get-ChildItem . *.txt | Where {$_.Name -match '^\d+-(.*)'} |
Rename-Item -NewName {$matches[1]}
或別名:
gci . *.txt | ?{$_.Name -match '^\d+-(.*)'} | rni -new {$matches[1]}
[0-9]*?-[^.]*
我建議你花一些時間來學習正則表達式,雖然,而不是僅僅使用答案來自左右。你會遇到各種不尋常的文件命名,可能會在現實世界中拋出你的程序,並且你無法在不理解正則表達式的情況下解決這些問題。
編輯:不知道你是否也想刪除'名稱'部分。如果不是這樣,而是使用此:
[0-9]*?-
這將匹配字符串中的東西,比如'file0921-f.txt' – NullUserException 2010-09-21 02:20:44
非常感謝您的回答。是的,我一直想學習一些正則表達式,我一直在尋找和收集大量的示例代碼,但它仍然沒有解決我的想法。這是我自己提出的一個問題,目前爲止我已經理解了多少(不像您所看到的那麼多),我嘗試了很多東西,但我嘗試的表達式根本無法按預期工作,所以我決定看看它是如何完成的...... – Melladric 2010-09-21 21:09:33
我學會了正則表達式的方式是用RegExr玩弄:http://gskinner.com/RegExr/並回答關於SO的問題。 :-) 另外,NullUserException是正確的。這會更好:'\ b [0-9] [0-9] *? - [^。] *' – Computerish 2010-09-21 22:23:58
感謝您的回答,我希望看到一些PS代碼是非常有幫助的! – Melladric 2010-09-21 21:16:14