如何正确地在Remove-Item中使用-Exclude来获取Powershell中变量的字符串列表?

时间:2018-11-02 06:05:41

标签: powershell

我有一个变量,以这种格式存储要删除的文件列表:

$list = """" + "file1.txt" + """"

和完整的$list看起来像这样:

$list
"file1.txt","file2.txt","file3.txt",...

并尝试对变量使用Remove-Item失败,它删除了所有文件:

Remove-Item -Recurse -Path "c:\myfiles\*" -Exclude $list

如何正确实现?预先感谢!

1 个答案:

答案 0 :(得分:2)

您已经接近,但$list必须是一个数组,而不是字符串(带有引号)。

只需引用每个元素,并用逗号分隔它们即可:

$list = "file1.txt","file2.txt"

Remove-Item -Path "c:\myfiles\*" -Recurse -Exclude $list -WhatIf

我还建议您阅读about_quoting_rules,因为您似乎不知道双引号和单引号会做不同的事情。

使用单引号代替:

$list = """" + "file1.txt" + """"

可以表示为:

$list = '"file1.txt"'

(上面的代码不需要这些多余的引号)