使用数组元素创建Out-File-names

时间:2014-02-24 09:44:43

标签: powershell

我需要创建包含更改内容的.txt / .sap文件/快捷方式。我使用do until循环,应该使用数组中的字符串创建文件名。我不能使用方括号来访问数组,因为Powershell将它们解释为外卡字符。

以下代码显示了原则:

$strSAPSystems = @("Production", "Finance", "Example")

$i = 0
do{
"text1" | Out-File .\SAP_$strSAPSystems[$i].sap
"text2" | Out-File .\SAP_$$strSAPSystems[$i].sap -Append
$i++
}
until($i -eq $strSAPSystems.length)

导致错误:“out-file:无法执行操作,因为通配符路径...没有解析为文件”

我尝试添加-literalPath参数,但它不起作用。我是Powershell的新手,是否有更好的方法来获取以SAP系统命名的文件?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要将字符串(path)包装在子表达式$(.....)中以提取数组中单个元素的值。自动取款机。路径变得像.SAP_Production Finance Example[$i].sap

此外,您在第二个$中还有一个Out-File。就个人而言,我会改写为:

$strSAPSystems = @("Production", "Finance", "Example")

$strSAPSystems | ForEach-Object {
    "text1" | Out-File ".\SAP_$($_).sap"
    "text2" | Out-File ".\SAP_$($_).sap -Append"
}

$_是数组中的当前项,由于它是单个对象,我不需要子表达式$(),但我包含它因为它更容易查看路径的静态和动态部分。