我有一个变量,以这种格式存储要删除的文件列表:
$list = """" + "file1.txt" + """"
和完整的$list
看起来像这样:
$list
"file1.txt","file2.txt","file3.txt",...
并尝试对变量使用Remove-Item
失败,它删除了所有文件:
Remove-Item -Recurse -Path "c:\myfiles\*" -Exclude $list
如何正确实现?预先感谢!
答案 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"'
(上面的代码不需要这些多余的引号)