1

Мне нужно удалить первые 3 символа каждого файла в моем каталоге. Вот мой код:

Get-ChildItem "D:\New Folder" -Filter *.txt |
foreach-object -process {rename-item -path $_.FullName -newname ($_.Remove(0,3))}

Я не понимаю, почему это не работает. Кто-нибудь может мне помочь?

1 ответ1

5

$ _ относится к объекту файла. Не к имени файла. Я подозреваю, что это просто ускользнуло от вас, поскольку вы ссылаетесь на $ _.Полное имя для -Path. Попробуйте ссылаться на имя вместо объекта при переименовании:

Get-ChildItem "D:\New Folder" -Filter *.txt |
foreach-object -process {rename-item -path $_.FullName -newname ($_.Name.Remove(0,3))}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .