我正在尝试获取文件夹中的文件列表,同时使用 脚本文件.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
标志的字符串列表的正确格式是什么?
通过查看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*'