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

时间:2015-10-31 00:40:08

标签: powershell

我是PowerShell的新手。我在网上看了这个答案,但无济于事。也许我只是错误地表达了这个问题。

我经常发现自己必须在cmdlet之后将字符串与变量连接起来。例如,

New-Item $archive_path + "logfile.txt" -type file

如果我尝试运行此命令,PowerShell会抛出以下错误:

New-Item:找不到接受参数'+'的位置参数。

我没有正确连接字符串吗?我不想在我执行此操作的每个cmdlet之前声明另一个变量(例如,$logfile = $archive_path + "logfile.txt",然后执行New-Item $logfile -type file)。另外,我不会总是连接文件路径。

1 个答案:

答案 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

解析参数模式的信息