2010-09-21 61 views

回答

0
Get-ChildItem . *.txt | Where {$_.Name -match '^\d+-(.*)'} | 
         Rename-Item -NewName {$matches[1]} 

或別名:

gci . *.txt | ?{$_.Name -match '^\d+-(.*)'} | rni -new {$matches[1]} 
+0

感謝您的回答,我希望看到一些PS代碼是非常有幫助的! – Melladric 2010-09-21 21:16:14

2
$variable -replace "^\d+-", "" 
+0

謝謝你,我缺的是「+」號的事情是我錯過了什麼。 – Melladric 2010-09-21 21:30:04

0
[0-9]*?-[^.]* 

我建議你花一些時間來學習正則表達式,雖然,而不是僅僅使用答案來自左右。你會遇到各種不尋常的文件命名,可能會在現實世界中拋出你的程序,並且你無法在不理解正則表達式的情況下解決這些問題。

編輯:不知道你是否也想刪除'名稱'部分。如果不是這樣,而是使用此:

[0-9]*?- 
+0

這將匹配字符串中的東西,比如'file0921-f.txt' – NullUserException 2010-09-21 02:20:44

+0

非常感謝您的回答。是的,我一直想學習一些正則表達式,我一直在尋找和收集大量的示例代碼,但它仍然沒有解決我的想法。這是我自己提出的一個問題,目前爲止我已經理解了多少(不像您所看到的那麼多),我嘗試了很多東西,但我嘗試的表達式根本無法按預期工作,所以我決定看看它是如何完成的...... – Melladric 2010-09-21 21:09:33

+0

我學會了正則表達式的方式是用RegExr玩弄:http://gskinner.com/RegExr/並回答關於SO的問題。 :-) 另外,NullUserException是正確的。這會更好:'\ b [0-9] [0-9] *? - [^。] *' – Computerish 2010-09-21 22:23:58