2015-01-04 3 views
4

Я пытаюсь это, но он ничего не печатает:Как я могу перечислить и распечатать файлы в каталоге?

Dir -Recurse "C:\temp" | Select Fullname 

Похоже, эта команда просто выбирает имена файлов. Я хочу видеть их в консоли.

+4

Можете ли вы проверить, действительно ли есть файлы и папки в C: \ temp, и что он не пуст ни в коем случае –

ответ

2

Посмотрите на Get-Childitem

Dir -Recurse c:\path\ | Get-Childitem 
+0

Стоит отметить, что 'Dir' является псевдонимом для' Get-ChildItem'. Исходный код OP работает ... по крайней мере, в PowerShell 3.0. Ваш код переводится как 'Get-Childitem -Recurse c: \ path \ | Get-Childitem'. См. «Get-Alias». 'Alias ​​dir -> Get-ChildItem' – Matt

+1

Довольно уверен, что этот код удвоит выход, если у вас есть папки в пути, так как каталог будет выводиться во второй 'Get-ChildItem' – Matt

2

Что касается вашего кода в вопросе.

Ваша команда должна была работать как есть. Вы, по сути, уже звоните Get-ChildItem. Если вы проверите Get-Alias, вы увидите, что я пытаюсь вам рассказать.

PS C:\users\Cameron\Downloads> Get-Alias dir 

CommandType  Name            ModuleName                        
-----------  ----            ----------                        
Alias   dir -> Get-ChildItem 

Вы код переводится

Get-ChildItem -Recurse "C:\temp" | Select Fullname 

Опять же, я не знаю, почему ваш код не генерирует выходной сигнал, так как это совершенно нормально на папке, содержащей файлы или каталоги. Может быть, проблема с позиционным параметром может быть? Какова ваша версия PowerShell? (Используйте Get-Host).

Код, который вы отправили бы все пути к файлу на консоль. Вы хотите, чтобы это вышло где-то еще?

О принятом ответе

Довольно уверен, что этот код будет удвоить выход, если у вас есть папки в пути, так как каталог будет выводить на второй Get-ChildItem

Dir -Recurse c:\path\ | Get-Childitem 

Обратите внимание на следующее дерево папок

C:\TEMP\TEST 
│ File1.txt 
│ File2.txt 
│ 
└───Folder1 
     File3.txt 

Рассмотрите две команды, выполняемые против этого дерева папок.

PS C:\users\Cameron\Downloads> Dir -Recurse c:\temp\test | Select Fullname 

FullName                                          
--------                                          
C:\temp\test\Folder1                                       
C:\temp\test\File1.txt                                      
C:\temp\test\File2.txt                                      
C:\temp\test\Folder1\File3.txt                                    



PS C:\users\Cameron\Downloads> Dir -Recurse c:\temp\test | Get-Childitem | Select Fullname 

FullName                                          
--------                                          
C:\temp\test\Folder1\File3.txt                                    
C:\temp\test\File1.txt                                      
C:\temp\test\File2.txt                                      
C:\temp\test\Folder1\File3.txt 

Вторая команда показывает два файла под названием File3.txt, когда на самом деле есть только один.

0

Возможно, стоит упомянуть переключатель -force, который необходим для просмотра скрытых элементов.

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