如何使用PowerShell根据文件夹内文件类型移动符合条件的目录
PowerShell 实现按文件夹内容判断移动逻辑
直接给出可直接复用的完整代码,完全兼容你原有变量配置:
# 沿用你原有配置变量,无需修改已有路径配置 $srcfolder = "C:\Work\Test2" $finalfolder = "c:\work\TestReview" $combine = "C:\Work\Scripts\Tools\ImageMagick\convert.exe " $arg1 = " -compress zip " # 先判断目标目录是否存在,不存在则创建,避免移动时报错 if (!(Test-Path -Path $finalfolder)) { New-Item -ItemType Directory -Path $finalfolder | Out-Null } # 遍历源根目录下的所有子文件夹 # 如果需要递归扫描所有层级子文件夹,删除 -Depth 1 参数即可 Get-ChildItem -Path $srcfolder -Directory -Depth 1 | ForEach-Object { $currentDir = $_.FullName # 检测当前目录中是否同时存在TIF和TXT文件 $hasTif = Test-Path -Path "$currentDir\*.tif" -PathType Leaf $hasTxt = Test-Path -Path "$currentDir\*.txt" -PathType Leaf if ($hasTif -and $hasTxt) { # 符合条件则移动文件夹到目标位置 Move-Item -Path $currentDir -Destination $finalfolder -Force } }
调整说明
- 如果你需要同时匹配
.tiff后缀的文件,将代码中的*.tif修改为*.tif*即可 -Force参数会自动覆盖目标路径下的同名文件夹,如果你不需要覆盖可以删除该参数- 现有逻辑默认只检查文件夹当前层级的文件,不会把嵌套子文件夹内的TIF/TXT作为判断依据
内容的提问来源于stack exchange,提问作者Elroy Taulton
相关产品推荐
相关产品推荐

