在文件名前打印计数
Print counting before the names of the files
我想显示某个文件夹的文件名,在它前面显示一个计数器。例如,如果文件夹中有以下文件:
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 的新手,想知道是否有更直接的方法来做到这一点。
为什么这么难?我想这已经可以满足您的需求了:
$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}
中增加该数字
我想显示某个文件夹的文件名,在它前面显示一个计数器。例如,如果文件夹中有以下文件:
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 的新手,想知道是否有更直接的方法来做到这一点。
为什么这么难?我想这已经可以满足您的需求了:
$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}