PowerShell:在 cmdlet 后使用变量连接字符串

13

我经常发现自己在这种情况下需要在命令后面将一个变量与一个字符串拼接起来。例如,

New-Item $archive_path + "logfile.txt" -type file
如果我尝试运行这个,PowerShell会抛出以下错误:
New-Item:找不到接受“+”参数的位置参数。
我没有正确地连接字符串吗?我希望在每个我这样做的cmdlet之前不必声明另一个变量(例如,$logfile = $archive_path +“logfile.txt”,然后执行New-Item $logfile -type file)。而且,我并不总是在连接文件路径。
1个回答

22

您会收到该错误,因为PowerShell解析器将$archive_path+"logfile.txt"视为三个单独的参数,而不是一个字符串。

在拼接字符串时,请使用括号()来改变评估顺序:

New-Item ($archive_path + "logfile.txt") -Type file

可以将变量放在子表达式中:

New-Item "$($archive_path)logfile.txt" -Type file

你可以通过Get-Help about_Parsing了解关于参数模式解析的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接