咨询PowerShell中替换Write-Output实现指定文件删除的操作符
PowerShell 删除指定目录中不在列表内的文件
你需要替换Write-Output $_的部分,不需要额外操作符,直接使用PowerShell的Remove-Item命令即可实现需求。
修改后的代码
$imagesdir = "C:\images" $allImages | ForEach-Object { if (-not $wImages.ContainsKey($_)) { # 匹配文件名包含当前字符串的所有扩展名文件 Remove-Item -Path (Join-Path $imagesdir "*$_*") -Recurse -ErrorAction SilentlyContinue } }
关键说明
- 使用
Join-Path拼接目录和通配符路径,确保路径格式符合系统要求 *$_*表示匹配文件名中包含$_对应字符串的所有文件(不受扩展名限制)- 添加
-Recurse参数可同时删除子目录中符合条件的文件,不需要递归可直接移除该参数 -ErrorAction SilentlyContinue用于忽略不存在对应文件时的报错信息- 建议先添加
-WhatIf参数(如Remove-Item ... -WhatIf)执行测试,确认待删除文件符合预期后,再移除该参数执行正式删除操作
内容的提问来源于stack exchange,提问作者Shud
相关产品推荐
相关产品推荐

