是)我有的
以下工作代码列出了放置脚本的所有子文件夹中的所有文件。
它仅包括某些文件类型,并排除某个文件夹中的所有文件。到现在为止还挺好
$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 循环?