我有两个非常相似的单行命令,但一个有效,一个不带变量。
Copy-Item "C:\BadSourceCodes\dropTest\base1\*" -Include "myUsers.Config","myUsers.WSF" -Destination "C:\BadSourceCodes\dropTest\temp1"
这很有效,我有两个文件,我希望将它们复制到目标文件夹。
如果我创造这样的东西
$files = "myUsers.Config,myUsers.WSF"
$tempFiles = [string]::Concat("`"",$files.Replace(",","`",`""),"`"")
$tempFiles
Copy-Item "C:\BadSourceCodes\dropTest\base1\*" -Include $tempFiles -Destination "C:\BadSourceCodes\dropTest\temp1" -Force
一旦我对包含文件使用变量,它就不起作用。我检查了不同的变体,但它不起作用。
$ 变量的行为是否不同?
我尝试了以下变体,例如 $($tempFiles)、'$tempFiles'、"$tempFiles".....
更新: 我认为当我转义引号并将 , 替换为 "," 时,它会将引号视为字符串的一部分。我采取了一些糟糕的方法。但是起作用的只是 $files.Split(",") 它创建了一个字符串数组并完成了。