我是PowerShell的新手。我在网上看了这个答案,但无济于事。也许我只是错误地表达了这个问题。
我经常发现自己必须在cmdlet之后将字符串与变量连接起来。例如,
New-Item $archive_path + "logfile.txt" -type file
如果我尝试运行此命令,PowerShell会抛出以下错误:
New-Item:找不到接受参数'+'的位置参数。
我没有正确连接字符串吗?我不想在我执行此操作的每个cmdlet之前声明另一个变量(例如,$logfile = $archive_path + "logfile.txt"
,然后执行New-Item $logfile -type file
)。另外,我不会总是连接文件路径。
答案 0 :(得分:17)
您收到该错误是因为powershell解析器将$archive_path
,+
和"logfile.txt"
视为三个单独的参数参数,而不是一个字符串。
将字符串连接括在parantheses ()
中以更改评估顺序:
New-Item ($archive_path + "logfile.txt") -Type file
或将变量括在子表达式中:
New-Item "$($archive_path)logfile.txt" -Type file
您可以阅读使用Get-Help about_Parsing