在文件名之前打印计数

时间:2019-03-07 13:40:56

标签: powershell file count get-childitem

我想显示某个文件夹的文件名,并在其前面显示一个计数器。例如,如果该文件夹包含以下文件:

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 :(得分:0)

为什么这么难?我认为这已经可以满足您的要求:

$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}

中增加该数字