目录结构如下:
Directory: \\L04274\C$\Temp Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 3/12/2018 2:04 PM AutomatedImportProcess d----- 3/13/2018 11:34 AM f1 d----- 3/13/2018 11:33 AM f2
排除CSV文件包含一列(稍后可能会扩展到包含文件类型的两列)。
ExcludeDirectory \\L04274\C$\Temp\f2\ \\L04274\C$\Temp\f1\
PowerShell命令看起来像这样,但它似乎没有按预期执行:
$path = '\\L04274\C$\Temp\f1'
$exclusion = @(Get-Content -LiteralPath '\\L04274\C$\Temp\Exclusions.csv')
Get-ChildItem -Path $path -Force -Exclude $exclusion
我期望看到的只是以下文件夹:
\\L04274\C$\Temp\AutomatedImportProcess\
答案 0 :(得分:2)
Exclude
仅适用于文件名。
事实之后你必须使用嵌套的Where-Object
语句:
$path = '\\L04274\C$\Temp\f1'
$exclusions = @(Import-Csv -LiteralPath '\\L04274\C$\Temp\Exclusions.csv') |Select-Object -Expand ExcludeDirectory
Get-ChildItem -Path $path -Force |Where-Object {
$FullName = $_.FullName
-not($exclusions|Where-Object {
$FullName -like "$_*"
})
}
如果完整路径与任何排除项不匹配,-not(...)
语句将返回$true
,否则文件将被省略
答案 1 :(得分:0)
这有效:
dataetime