如何在Powershell中获取前导空格而不是零?
在脚本的某个地方,我正在编写一个folderstructure来承载每个文件夹中的文件数[1]:如何在Powershell中获取前导空格而不是零?,powershell,Powershell,在脚本的某个地方,我正在编写一个folderstructure来承载每个文件夹中的文件数[1]: $FolderName = "BAR" $ItemCount = "{0:000}" -f 7 Write-Host $ItemCount $FolderName 这将输出类似于[2]的内容: 007 BAR 044 BAZ 311 FOO 我真正想要的是[3]: 7 BAR 44 BAZ 311 FOO 我不想使用自定义Powershell对象,因为它会在控制台[4]的整个宽度上输
$FolderName = "BAR"
$ItemCount = "{0:000}" -f 7
Write-Host $ItemCount $FolderName
这将输出类似于[2]的内容:
007 BAR
044 BAZ
311 FOO
我真正想要的是[3]:
7 BAR
44 BAZ
311 FOO
我不想使用自定义Powershell对象,因为它会在控制台[4]的整个宽度上输出:
Folder Itemcount
------ ---------
BAR 7
BAZ 44
FOO 311
我想要一个像[5]这样的输出:
Folder ItemCount
------ ---------
BAR 7
BAZ 44
FOO 311
如此紧密地结合在一起使得它更具可读性。但我选择了我的解决方案(FolderName的ItemCount)作为第二个最佳选项,因为我无法让它工作
如何获得[3]或[5]中的输出?因此有几种方法可以实现这一点。这取决于你对最终结果做了什么。使用
-Format
参数的对齐选项(5处)
或者可能是字符串方法.PadLeft()
。下面的两个示例应产生相同的输出。可读性可能会在第一阶段受到影响。请注意,.PadLeft()
是一个字符串方法。在我的示例中,我使用的是length
,即int
,因此我们必须转换为string
"$(([string]($_.Length)).PadLeft(5)) $($_.Name)"
"{0} {1}" -f ([string]($_.Length)).PadLeft(5),$_.Name
现在。。。也许您只是想使用格式表
实现屏幕上的漂亮输出。只需要以另一种方式使用我的第一个示例
gci c:\temp *.csv | Select-Object @{Name="Length";Expression={"{0,5}" -f $_.Length}}, Name | Format-Table -AutoSize
您只是在找
.PadLeft
?或格式化表格
esque操作尝试格式化表格
,使用-自动调整大小
。它将产生类似[5]的结果。
gci c:\temp *.csv | Select-Object @{Name="Length";Expression={"{0,5}" -f $_.Length}}, Name | Format-Table -AutoSize
$ItemCount=($Count.ToString()).PadLeft(3)