【发布时间】:2013-11-19 11:42:37
【问题描述】:
我有什么
以下工作代码列出了放置脚本的所有子文件夹中的所有文件。
它仅包括某些文件类型,并排除某个文件夹中的所有文件。到目前为止一切顺利
$fileInclude = @("*.txt", "*.hgr", "*.dat")
$folderExclude = "C:\folder2"
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
gci $scriptPath -recurse -include $fileFilter | Where {$_.FullName -notlike "$folderExclude*"}
我的测试文件结构如图所示
C:.
│ Myscript.ps1
│
├───folder1
│ │ file1.dat
│ │ file1.hgr
│ │ file1.txt
│ │
│ └───folder3
│ file3.dat
│ file3.hgr
│ file3.txt
│
└───folder2
file3.dat
file3.hgr
file3.txt
我想要什么
现在我想替换第二行
$folderExclude = "C:\folder2"
带有一个数组。后来有几十条路在里面。
$folderExclude = @(
"C:\folder2",
"C:\folder1\folder3"
)
显然这不起作用,因为-notlike 需要一个字符串而不是字符串数组。
我不知道如何实现这一点。我想我需要一个 for-each 循环?
【问题讨论】:
标签: powershell foreach