Обрезать специальные символы powershell

Я использую Get-ChildItem для поиска файлов на удаленных компьютерах и передаю их с помощью Select-Object, чтобы возвращать только найденное имя файла. Проблема в том, что он возвращает @{Name=File.txt}, но мне нужно только имя файла.

$TraName = Get-ChildItem \\$comp\c$\ -Filter File*.txt | Select-Object Name
$TraName
echo "Found $TraName on $comp" | out-file c:\Names.txt -append

Я пробовал использовать .Trim(@{Name=}), но он не обрезает специальные символы.

Любой совет?


person user3726182    schedule 10.06.2014    source источник
comment
Я не эксперт PS, но разве это не возвращает список файлов в качестве переменных? разве вы не должны просто вызывать переменную?   -  person VikingBlooded    schedule 10.06.2014


Ответы (1)


Select-Object Property возвращает настраиваемый объект PowerShell с одним свойством. Когда пользовательские объекты преобразуются в строки, используется нотация хэш-литтерала (@{name=value;name=vale;…}) PSH.

Если вы хотите выбрать только одно свойство, просто используйте для этого .Property, PowerShell правильно работает с массивами (вы получаете массив значений этого свойства):

$TraName = (Get-ChildItem \\$comp\c$\ -Filter File*.txt).Name
person Richard    schedule 10.06.2014
comment
Спасибо! Работает идеально! - person user3726182; 10.06.2014