Board logo

标题: [问题求助] [已解决]PowerShell怎样把数组元素在一行内输出? [打印本页]

作者: nameyu8023    时间: 2021-8-18 00:36     标题: [已解决]PowerShell怎样把数组元素在一行内输出?

本帖最后由 nameyu8023 于 2021-8-31 18:29 编辑
  1. powerhsell
  2. $strArr = @("a", "b",  "c")
  3. write-output "$strArr[0], $strArr[1], $strArr[2]"
复制代码
预期输出应该是: a,b,c
但实际输出为: a b c[0], a b c[1], a b c[2]

这个是为什么, 如果我想数组内的元素在同一行内输出,应该如果做?
作者: newswan    时间: 2021-8-18 02:03

不要双引号
作者: nameyu8023    时间: 2021-8-26 21:55

回复 2# newswan

首先谢谢你的回答,
抱歉表达的不清楚;

其实我想问的是,如果在一行显示,同时还想在数组前加上别的字符传,类似
  1. $strArr = @("a", "b",  "c")
  2. write-output "123" + $strArr[0], $strArr[1], $strArr[2]
复制代码
预期结果应该为:

123abc

但是我以上面的方法来写,结果为:
  1. PS C:\Users\kermit> $strArr = @("a", "b",  "c")
  2. PS C:\Users\kermit> write-output 123 $strArr[0] $strArr[1] $strArr[2]
  3. 123
  4. a
  5. b
  6. c
  7. PS C:\Users\kermit>
复制代码

作者: newswan    时间: 2021-8-26 23:46

write-output ( "123" + $strArr[0] + $strArr[1] + $strArr[2] )
先把字符串连接
作者: zaqmlp    时间: 2021-8-27 04:52

字符串和变量之间建议用+进行拼接;不建议在字符串中直接引用变量,不然经常会遇到转义的问题,容易搞蒙自己
  1. $strArr=@("a","b","c");
  2. write-output "123$($strArr[0]),$($strArr[1]),$($strArr[2])";
  3. write-output ($strArr -join ",");
  4. write-output ("123"+($strArr -join ""));
复制代码

作者: nameyu8023    时间: 2021-8-31 18:27

正是我想要的结果。
多谢两位!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2