“New-Item”中“-name”参数的多个变量

Bra*_*ady 1 parameters powershell

我在使用以下 PS 脚本时遇到问题:

New-Item -name $InfoLog -path $LogPath -Name ("Info Log - ",$DateStamp," - ",$TimeStamp) -type file
Run Code Online (Sandbox Code Playgroud)

它给了我错误-

无法绑定参数,因为多次指定参数“名称”。要为可接受多个值的参数提供多个值,请使用数组语法。例如,“-参数值1,值2,值3”。

有任何想法吗?我也尝试过不带括号。

小智 5

所有 PowerShell cmdlet 每个参数仅接受一个参数。但是,您将两个参数传递给-Name的参数New-Item

New-Item -name $InfoLog -path $LogPath -Name ("Info Log - ",$DateStamp," - ",$TimeStamp) -type file
# One argument ^^^^^^^^     Another argument ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

由于这是非法函数调用,因此 PowerShell 会引发错误。


看起来你的意思是这样写:

New-Item -Path $LogPath -Name "Info Log - $DateStamp - $TimeStamp" -Type File
Run Code Online (Sandbox Code Playgroud)

字符串中的变量"Info Log - $DateStamp - $TimeStamp"将扩展为它们代表的值:

PS > $a = 123   
PS > $b = "abc"
PS > "$a -- $b"
123 -- abc

PS > 
Run Code Online (Sandbox Code Playgroud)