在 PowerShell 中,典型的字符串格式化(例如使用填充或指定数字)可以编写成如下形式:
>>> "x={0,5} and y={1:F3}" -f $x, $y
x= 10 and y=0.333
但是在PowerShell中,您也可以使用字符串插值,例如:
>>> $x=10
>>> $y=1/3
>>> "x=$x and y=$y"
x=10 and y=0.333333333333333
C#字符串插值也支持格式化说明符:
> var x = 10;
> var y = 1.0/3.0;
> $"x={x,5} and y = {y:F2}";
"x= 10 and y = 0.33"
有没有一种在Powershell中实现这个功能的方法?我尝试了很多组合,比如
>>> "var=$($var, 10)"
var=10 10
但它们都不起作用。这是否受支持?还是有一种简洁的方法调用C#来使用它?
更新:正如Mathias的答案和在Powershell的github上确认的那样,目前不支持此功能,因此我在这里提出了一个功能请求。
"var={0,10}" -f $var
。好吧,因为我喜欢内联字符串插值,习惯了其他语言的语法,它有点更短,而且我觉得它更易读(通常情况下)。 - stijn$var
左侧填充吗?如果是这样,你可以使用 String 方法PadLeft
,类似于"var=$($var.ToString().PadLeft(5))"
。 - Theo-f
字符串格式操作符。显然,PowerShell 中没有其他方法可以做到这一点。 - Lee_Dailey"$(' '*10)$var"
- AdminOfThings