2013-12-12 3 views
0

У меня есть ряд файлов, содержащие строку символов, такие, как этотИспользование PowerShell для удаления случайной строки символов из имен файлов

(AEDOGRES) 

имя Пример файл будет

"Test 1(DOWKFUET).png" 

Я хочу использовать команду powershell, чтобы избавиться от всей строки в круглых скобках, чтобы получить что-то вроде этого.

"Test 1.png" 

Я бы ожидать, чтобы иметь возможность использовать команду как этот

dir | rename-item –NewName { $_.name –replace “(*)“,”” } 

Однако, это не работает для меня. Любая помощь очень ценится!

Я бегу Powershell 3.0

ответ

2

Regex и подстановочные соответствия имеют разные правила. В регулярном выражении * означает «совпадение нуля или более предыдущего символа», а парсеры - это зарезервированные символы, используемые для группировки конструкций, и их нужно экранировать (используя обратную косую черту), если вы хотите, чтобы они использовались в качестве литерала.

Смотреть Get-Help about_Regular_Expressions, и попробуйте это:

$name = "Test 1(DOWKFUET).png" 
$name -replace '\(.+\)','' 
Смежные вопросы