批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[问题求助] [已解决]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]

这个是为什么, 如果我想数组内的元素在同一行内输出,应该如果做?

不要双引号
不了解 powershell 的,请看 "PowerShell初学者FAQ" "批处理 + powershell"

TOP

回复 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>
复制代码

TOP

write-output ( "123" + $strArr[0] + $strArr[1] + $strArr[2] )
先把字符串连接
不了解 powershell 的,请看 "PowerShell初学者FAQ" "批处理 + powershell"

TOP

字符串和变量之间建议用+进行拼接;不建议在字符串中直接引用变量,不然经常会遇到转义的问题,容易搞蒙自己
  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 ""));
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

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

TOP

返回列表