2013-12-12 75 views
0

我一直能够通过搜索功能找到我一直在寻找堆栈溢出的东西。然而这一次我有点卡住了,虽然我会突然发问并询问社区。在一行中写入两个数组到一个文件,Powershell

我想从两个数组写入到数据文件中,例如:

$arrayString = @(“User1″, “User2″, “User3″) 
$arrayInteger = @(1, 2, 3) 

,我不知道的线路是写这我已经尝试了文件中的以下行:

Add-Content $filePath$ ($arrayString[0] $arrayinteger[0]) 

当我做到这一点我得到错误“意外令牌‘arrayinteger’在表达式或语句

我也曾尝试:

Add-Content $filePath$ ($arrayString[0] + $arrayinteger[0]) 

我得到的错误“方法调用失败,因为[System.IO.DirectoryInfo]不包含名为'op_Addition'的方法。”我的理解是我试图“添加”一个字符串和一个导致错误的整数。

但是,如果我尝试将线写这部作品的控制台:

write-host $arrayString[0] $arrayinteger[0] 

的目标输出我想要得到的

User1 1 
User2 2 
User3 3 

感谢您的帮助。

回答

1

这里有几个不同的方法来解决这个问题:

$arrayString = @("User1","User2","User3") 
$arrayInteger = @(1, 2, 3) 

在扩展字符串使用的子表达式:

$(for ($i=0; $i -le 2;$i++) 
{ 
    "$($arrayString[$i]) $($arrayInteger[$i])" 
})| set-content $filepath 

使用格式字符串:

$(for ($i=0; $i -le 2;$i++) 
{ 
    '{0} {1}' -f $arrayString[$i],$arrayInteger[$i] 
}) | set-content $filepath 
+0

好极了!谢谢! 我结束了使用子表达式的方法,这个工作首先去。标记为已回答 – user3093729

相关问题