我需要创建包含更改内容的.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系统命名的文件?
谢谢
答案 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"
}
$_
是数组中的当前项,由于它是单个对象,我不需要子表达式$()
,但我包含它因为它更容易查看路径的静态和动态部分。