WIn10 个人操作习惯 总是会打开很多个相同路径的文件夹 想 使用批处理脚本检查并关闭重复打开的文件夹窗口
AI给出的代码,没有实现,求老师指教,修改,谢谢。 | @echo off | | setlocal enabledelayedexpansion | | | | rem 获取所有打开的文件夹窗口路径 | | set "folderPaths=" | | for /f "tokens=2 delims=: " %%a in ('tasklist /fi "imagename eq explorer.exe" /v /fo list ^| findstr /i "Window Title:" ^| findstr /i /v "Task Manager" ^| findstr /i /v "Start menu" ^| findstr /i /v "Program Manager"') do ( | | set "folder=%%a" | | if "!folder:~0,2!"=="::" ( | | set "folder=!folder:~2!" | | ) | | if exist "!folder!" ( | | set "folderPaths=!folderPaths! "!folder!"" | | ) | | ) | | | | rem 找出重复路径并关闭多余窗口 | | set "processedFolders=" | | for %%f in (%folderPaths%) do ( | | set "isDuplicate=0" | | for %%p in (%processedFolders%) do ( | | if "%%~f"=="%%~p" ( | | set "isDuplicate=1" | | ) | | ) | | if !isDuplicate! equ 1 ( | | powershell -Command "$shell = New-Object -ComObject Shell.Application; $shell.Windows() | Where-Object { $_.LocationURL -like 'file://*%%~f*' } | ForEach-Object { $_.Quit() }" | | ) | | set "processedFolders=!processedFolders! %%f" | | ) | | | | endlocalCOPY |
|