首页 > 解决方案 > 如何正确使用 Remove-Item 中的 -Exclude 来获取 Powershell 中变量的字符串列表?

问题描述

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

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

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

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

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

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

如何正确实现这一目标?提前致谢!

标签: powershell

解决方案


你很接近但$list需要是一个数组而不是一个字符串(带有多余的引号)。

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

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

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

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

改用单引号:

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

可以表示为:

$list = '"file1.txt"'

(上面的代码不需要这些额外的引号)


推荐阅读