PowerShell中如何自动对齐键值对冒号?无需额外制表符
PowerShell 键值对冒号对齐实现方案(禁用内置格式化函数)
核心思路
放弃制表符的固定宽度跳转逻辑,通过动态计算所有键名的最大长度,用空格填充短键名的尾部,让所有键名长度统一,从而保证冒号位置完全对齐。
具体实现代码
# 定义需要输出的键值对集合 $keyValuePairs = @{ dirs = "helloworld" optional = "helloworld2" } # 计算所有键名中的最大长度 $maxKeyLength = ($keyValuePairs.Keys | Measure-Object -Property Length -Maximum).Maximum # 遍历并格式化输出每个键值对 foreach ($key in $keyValuePairs.Keys) { # 计算需要补充的空格数 $paddingSpaces = ' ' * ($maxKeyLength - $key.Length) # 拼接并输出结果 Write-Output "$key$paddingSpaces: $($keyValuePairs[$key])" }
输出效果
dirs : helloworld optional: helloworld2
说明
- 完全不依赖
Format-List、ConvertTo-Json等内置格式化函数,纯手动实现对齐逻辑 - 空格填充量根据键名长度动态计算,后续添加任意长度的键名都能自动适配对齐
内容的提问来源于stack exchange,提问作者Ichigo Kurosaki
相关产品推荐
相关产品推荐

