现在我有一个批处理文件,关闭explorer.exe,等待一秒钟,然后再打开它(它做了它的工作)。
@echo off
taskkill /f /IM explorer.exe
timeout /t 1 >nul
start explorer.exe
有没有办法恢复上述批处理程序关闭的所有窗口(目录)? 我想过把关闭explorer前的所有位置导出到一个.txt文件中,然后再从同一个批处理文件中打开,但我还没有测试过。我愿意接受任何建议。
其他信息。
我想为最终用户(非 "专家 "用户)设置一个批处理,所以我想把它变成一个 "双击 "批处理,关闭explorer,然后恢复到之前的状态。
本帖的 "源头 "问题是 "Windows 10资源管理器的搜索不能用"。https:/answers.microsoft.comen-uswindowsforumallfile-explorer-search-not-working-in-windows-103c70ea75-79a8-4f3b-b10a-86be1f22931c。(Windows未来的版本可能会解决这个问题,所以我只希望能从中学习到一些东西)
参考这个vbscript Windows资源管理器中所有打开的目录列表 可以使用这样的批处理脚本。
@echo off
Title Kill and restart Explorer.exe and restore all the windows by Hackoo 2020
Color 0A
Set "VBSFILE=%~dpn0.vbs"
> "%VBSFILE%" (
echo Wscript.Echo Opened_Folders
echo Function Opened_Folders
echo Dim objShellApp,wFolder,Open_Folder,F
echo Set objShellApp = CreateObject("Shell.Application"^)
echo For Each wFolder In objShellApp.Windows
echo Open_Folder = wFolder.document.Folder.Self.Path
echo F = F ^& Open_Folder ^& vbcrlf
echo Next
echo Opened_Folders = F
echo End Function
)
REM Populate the array with existent and opened folders
SetLocal EnableDelayedExpansion
Set /a Count=0
for /f "delims=" %%a in ('Cscript //NoLogo "%VBSFILE%"') do (
Set /a Count+=1
Set "Folder[!Count!]=%%a"
)
Taskkill /f /IM "explorer.exe"
Timeout /T 1 /NoBreak>nul
Start Explorer.exe
rem Restore all folders before killing explorer process
for /L %%i in (1,1,%Count%) do Explorer "!Folder[%%i]!"
pause & exit