2015-10-16 4 views
0

Я пытаюсь назначить все дочерние пути файлов в каталоге массиву, но не назначая каталоги.Назначить все дочерние пути в родительском каталоге массиву

Я использую следующую команду:

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | % { Write-Host $_.FullName } 

Выход выводимой на консоль и не сохраняется в переменной. Любой способ идеи?

ответ

0

Выход консоли из Write-Host отображается только, а не возвращен.

Вам нужно будет сохранить значение в переменной, а затем вы можете распечатать его:

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer }; 
$a | % { Write-Host $_.FullName } 
+0

Нет, все-таки направить вывод в консоль и сохранить его в переменной – cfircoo

2

Причина, пишет в консоль, потому что вы говорите Write-Host. Если вместо этого вы используете Write-Output, он сохранит эту переменную.

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | % { Write-Output $_.FullName } 

Или попробуйте использовать «Select-Object» вместо записи хоста.

Это будет выглядеть следующим образом:

$a = Get-ChildItem -path "C:\test\" -recurse | ?{!$_.PSIsContainer } | select-object -expand FullName 
Смежные вопросы