Распечатать подсчет перед именами файлов - PullRequest
0 голосов
/ 07 марта 2019

Я хочу показать имена файлов какой-либо папки с указанием счетчика перед ней.Например, если в папке есть следующие файлы:

file1.txt
file2.txt
file3.txt

Я хочу показать на экране powershell следующее:

1 - file1.txt
2 - file 2.txt
3 - file3.txt

Я написал для этого следующий код:

$maxfile=Get-ChildItem -Path C:\directory | Measure-Object | %{$_.Count}
For ($i=0; $i -le $maxfile-1; $i++){
    $j=$i+1
    Write-Host -NoNewline "$j  "
    Get-ChildItem -Path  C:\directory -name | Select-Object -First 1 -Skip $i 
}

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

1 Ответ

0 голосов
/ 07 марта 2019

Почему так сложно? Я думаю, что это уже будет делать то, что вы хотите:

$Folder = 'C:\Directory'
$i = 1
Get-ChildItem -Path $Folder -File | Sort-Object Name | ForEach-Object {
    "{0:D3} - {1}" -f $i++, $_.Name
}

Результат:

001 - file1.txt
002 - file2.txt
003 - file3.txt
...

Вы можете пропустить | Sort-Object Name.

Это добавит счетчик с ведущими нулями. Я решил отображать 3 цифры, поэтому максимум 999 элементов, но вы можете увеличить это число в {0:D3}

...