|
powershell 删除未指定
- # 设置文本文件的路径以及要清理的目录路径
- $filePath = "C:\path\to\your\file.txt" # 请替换为你的文本文件路径
- $directoryToClean = "C:\path\to\your\directory" # 请替换为你要清理的目录路径
- # 读取文本文件,获取文件和文件夹名称列表
- $filesToKeep = Get-Content $filePath | ForEach-Object {$_.Trim()} # 去除行首尾空格
- # 获取要清理目录中的所有文件和文件夹
- $allItems = Get-ChildItem -Path $directoryToClean -Recurse
- # 筛选出不在列表中的文件和文件夹
- $itemsToDelete = $allItems | Where-Object {$_.FullName -notin $filesToKeep}
- # 循环处理每个要删除的文件和文件夹
- foreach ($item in $itemsToDelete) {
- # 使用 -WhatIf 参数进行测试运行,查看将要删除的文件和文件夹
- # Remove-Item $item.FullName -Recurse -Force -WhatIf
- # 确认删除
- Write-Host "是否删除 '$($item.FullName)'?(y/n)" -ForegroundColor Yellow
- $confirmation = Read-Host
- if ($confirmation -eq "y") {
- try {
- # 删除文件或文件夹
- Remove-Item $item.FullName -Recurse -Force
- Write-Host "'$($item.FullName)' 已删除。" -ForegroundColor Green
- }
- catch {
- Write-Host "删除 '$($item.FullName)' 失败:$($_.Exception.Message)" -ForegroundColor Red
- }
- } else {
- Write-Host "'$($item.FullName)' 未删除。" -ForegroundColor Cyan
- }
- }
- Write-Host "脚本执行完毕。"
复制代码 |
|