2015-06-25 5 views
0

У меня есть 100 папок, которые являются инкрементальными. Например.Переименование файлов в нескольких подпапках

'20D, 0.5B001'...'20D, 0.5B002' 

... вплоть до

'20D, 0.5B100' 

Каждая из этих папок содержит файлы, которые имеют одинаковые добавочные имена. Например. 'Test_C1S0002001'...'Test_C1S0002002' и т. Д.

Я хочу переименовать каждый файл в каждой из этих папок на '002001' I.e. просто избавьтесь от 'Test_C1S0' в каждой из этих подпапок. Как я могу это сделать?

+2

Вы делали какие-либо попытки до сих пор? Есть ли какой-то конкретный бит, который вы застряли в том, что вы можете показать? – arco444

ответ

0
gci 'c:\path\' -File -Recurse | ren -NewName { $_ -replace 'Test_C1S0', '' } 

(непроверенные)

+3

Не могли бы вы пояснить, почему этот код отвечает на вопрос? Кодовые ответы [обескуражены] (http://meta.stackexchange.com/q/148272/274165), потому что они не учат решению. –

0

Что TessellatingHeckler имеет должны работать прекрасно. Для этого вам не нужно регулярное выражение, поскольку вы удаляете простую строку из начала строки. Таким образом, используя ту же самую логику ...

Get-ChildItem "C:\temp" -Recurse -File | Rename-Item {($_.Name).TrimStart("Test_C1S0")} 

Если вы не имеете PowerShell по крайней мере v3.0, то вам нужно будет сделать это.

Get-ChildItem "C:\temp" -Recurse | Where-Object{!$_.PSIsContainer} | Rename-Item {($_.Name).TrimStart("Test_C1S0")} 
+0

Спасибо, ребята! Это сработало... :) – Jai

Смежные вопросы