arrays - 如何在powershell中将string.format与字符串数组一起使用

标签 arrays powershell string-formatting

我想将格式化的字符串输出到控制台。我有一个字符串变量和一个字符串数组变量。

当我这样做时:

$arr = "aaa","bbb"
"test {0} + {1}" -f "first",$arr

输出是这样的:
test first + System.Object[]

但我需要输出为:
test first + aaa,bbb

或者类似的东西...

最佳答案

几个选项:

  • 先加入数组,这样你就不用依赖默认的 ToString()实现(只打印类名):
    PS> 'test {0} + {1}' -f 'first',($arr -join ',')
    test first + aaa,bbb
    
  • 使用字符串插值:
    PS> $first = 'first'
    PS> "test $first + $arr"
    test first + aaa bbb
    

    您可以通过设置 $OFS 来更改使用的分隔符, 默认情况下是一个空格:
    PS> $OFS = ','
    PS> "test $first + $arr"
    test first + aaa,bbb
    
  • 你可以得到相同的结果(包括关于 $OFS 的注释)
    PS> 'test {0} + {1}' -f 'first',(''+$arr)
    test first + aaa bbb
    

    这也强制数组首先转换为单个字符串。
  • 关于arrays - 如何在powershell中将string.format与字符串数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10616831/

    相关文章:

    arrays - 快速存储对数组的引用

    powershell - FolderItem.InvokeVerb ("Delete") 未经确认

    java - 使用 String.format() 作为注释属性值

    python - 如何在Python中为正数打印数字的符号+

    python - 在Python中读取格式化的多行

    c# - 我们如何找到 C# 整数数组中的项目计数?

    c - 试图在 C 中返回指向二维数组的两个指针

    c - 带有 for 循环的数组会出现段错误

    powershell - 显示将要运行的命令

    java - 在java中执行powershell命令时出现TerminatorExpectedAtEndOfString错误