我正在尝试获取文件夹中的文件列表,同时使用 脚本文件。ps1:
Param(
[string]$blacklist,
[string]$build_path
)
$filesToBuild = Get-ChildItem $build_path -Recurse -Exclude $blacklist
foreach ($file in $filesToBuild) {
Write-Verbose -Verbose "File: $file"
}
如果我使用命令调用脚本
.\files.ps1 -build_path "C:\SomeFolder" -blacklist 'Dev*'
它将排除带有Dev*
的文件,但是如果我传入文件列表-blacklist 'Dev*, Microsoft*'
,它将不会忽略任何文件。我试过不加引号。
但是,可以将其硬编码到脚本中:
$filesToBuild = Get-ChildItem $build_path -Recurse -Exclude Dev*, Microsoft*
通过命令行为-Exclude
标志传递字符串列表的正确格式是什么?
答案 0 :(得分:3)
通过查看Get-Help Get-ChildItem
,我看到-Exclude
参数接受一个字符串数组,因此应该传递'Dev*, Microsoft*'
而不是传递'Dev*','Microsoft*'
。您还必须更新参数以接受字符串数组。
Param(
[string[]]$blacklist,
[string]$build_path
)
$filesToBuild = Get-ChildItem $build_path -Recurse -Exclude $blacklist
foreach ($file in $filesToBuild) {
Write-Verbose -Verbose "File: $file"
}
.\files.ps1 -build_path "C:\SomeFolder" -blacklist 'Dev*','Microsoft*'