仅当文件夹包含特定类型的文件(例如.txt
,.csv
,.xls
,.xlsx
时,如何编写PowerShell脚本才能归档文件夹。我的源路径为C:\Temp\Test\
,共有5个子文件夹:
只有foldera
,folderb
,folderc
包含要归档的文件,归档路径为C:\Temp\Test\Archive
且folders
foldera
,folderb
因此无需创建这些文件夹,但需要压缩和复制文件,需要创建folderc
并且必须压缩和复制文件。
使用下面的代码我得到文件,但不是特定文件所在的文件夹。
$ignorefolders = @(
"C:\Temp\misc"
)
$archive = "C:\Temp\Archive"
[regex]$exclude = ‘(?i)^(‘ + (($ignorefolders |foreach {[regex]::escape($_)}) –join “|”) + ‘)’
$includefiletype = @("*.txt", "*.csv", "*.dat", "*.xls", "*.xlsx")
$workingDir = "C:\Temp"
Get-ChildItem $workingDir -recurse -include $fileFilter | Where {$_.FullName -notmatch $exclude} | Copy-Item -Destination $archive
答案 0 :(得分:0)
要获取目录,请选择从FileInfo
返回的Get-ChildItem
个对象的目录属性,我还假设您不想要任何重复项,因此,您&# 39;我必须使用sort
过滤掉那些:
Get-ChildItem -Recurse -Path $source -include*.txt,*.csv,*.xls,*.xlsx | select directory | sort -Unique -Property Directory | Select -expand Directory | Copy-Item -Destination $archive -WhatIf