【发布时间】:2020-03-28 14:52:34
【问题描述】:
我正在尝试编写一个 PowerShell 脚本,它允许用户传入一个参数,其中包含他们想要处理的多种类型的文件(即 *.txt 和 *.docx)。当我使用 -include 选项运行 Get-Childitem 命令并手动输入文件类型时,它可以工作文件。但是,当我尝试为 -include 掩码提供变量时,它不起作用(不返回任何内容)。
仅当我使用多种文件类型时才会出现此问题 $incFiles = “””.txt””`, “”.docx”””
如果我使用单一文件类型,它就可以正常工作。 $incFiles = “*.txt”
$incFiles = ""
$incFiles = """*.txt""`, ""*.docx"""
Write-Host "Manual Method:" '"*.txt", "*.docx"'
Write-Host "Calcul Method:" $incFiles
Write-Host "`nManual method works"
Get-ChildItem -path "C:\users\paul\Downloads" -Recurse -Include "*.txt", "*.docx"
Write-Host "This does not work"
Get-ChildItem -path "C:\users\paul\Downloads" -Recurse -Include $incFiles
Write-Host "End"
结果
Manual Method: "*.txt", "*.docx"
Calcul Method: "*.txt", "*.docx"
Manual method works
Directory: C:\users\paul\Downloads\Test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/28/2020 9:54 AM 0 File1.txt
-a---- 3/28/2020 9:55 AM 0 File2.docx
This does not work
End
【问题讨论】:
-
$incFiles = """*.txt"", ""*.docx"""` -->$incFiles = "*.txt", "*.docx"。你“过度引用”,甚至还有反引号。 -
添加到 Theo 的评论中,您的“手动”方法是创建一个由两个单独的字符串值
*.txt和*.docx组成的数组,但由于您的“过度引用”,$incFiles是一个字符串值"*.txt", "*.docx".
标签: powershell include