2016-07-14 4 views
0

Я переименовываю несколько сотен файлов, все из которых различаются с идентификатором товара, а затем с текстом после. Например ...Переименовать файлы в Powershell, удалив все после «_»

BBAT300_abcdefg.xls BBAT400_abcdefg.xls

Мне нужно удалить все из подчеркиванием, и в том числе подчеркивание на, так что результат таков:

BBAT300.xls BBAT400 .xls

Я нашел этот кусок кода раньше ...

Get-ChildItem -Name -Filter *.xls | foreach {[Regex]::Match($_,"^[^_]*").Value} 

и appea rs работать, но я не могу заставить его фактически переименовать файлы. Мои знания о сценариях практически отсутствуют, поэтому это может быть легко исправить, я просто не могу найти его. Powershell покажет результаты в powershell, но фактически не переименует файлы.

ответ

0

Вы можете просто труба эта линия команды переименования элемента:

Get-ChildItem -Filter *.txt | Foreach-Object -Process { 
    $NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.txt' 
    $_ | Rename-Item -NewName $NewName 
} 

EDIT: Изменены его поддержать любое место

+1

Это работало! Благодаря! – Brian

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