Batch file 关闭文件夹';带有批处理文件的窗口
我的桌面上有一个名为Batch file 关闭文件夹';带有批处理文件的窗口,batch-file,directory,Batch File,Directory,我的桌面上有一个名为test的文件夹。我想创建一个批处理文件,以便在使用Windows资源管理器打开此文件夹时自动关闭窗口。我尝试了下一个命令,但在执行命令时什么也没发生 TASKKILL /F /FI "WINDOWTITLE eq test" /IM explorer.exe 显示的消息是 No tasks running with the specified criteria. 有任何帮助吗?这在Windows 8.1中有效,将资源管理器文件夹选项设置为单个窗口,但根据Mofi的答案和
test
的文件夹。我想创建一个批处理文件,以便在使用Windows资源管理器打开此文件夹时自动关闭窗口。我尝试了下一个命令,但在执行命令时什么也没发生
TASKKILL /F /FI "WINDOWTITLE eq test" /IM explorer.exe
显示的消息是
No tasks running with the specified criteria.
有任何帮助吗?这在
Windows 8.1
中有效,将资源管理器文件夹选项设置为单个窗口
,但根据Mofi的答案和Mofi答案中的注释,然后解决方案取决于Windows版本
在Windows 8.1中有效的东西在Windows XP中不起作用
TASKKILL /F /FI "WINDOWTITLE eq %userprofile%\desktop\test" /IM explorer.exe
如果在Windows注册表中,则无法使用命令taskkill
关闭文件夹的Windows资源管理器窗口
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
双字SeparateProcess的值分别为0选项未选中的查看选项卡上的单独进程启动文件夹窗口
正如所发现的(阅读下面的评论),我也可以确认,在Windows XP SP3上启用此设置不会影响打开文件夹时运行的explorer.exe
,即使在重新启动Windows之后也是如此
因此,它取决于Windows版本(2000、XP、Vista、7、8、8.1)和文件夹选项
- 在标题栏中显示完整路径
- 在单独的进程中启动文件夹窗口
如果可以使用命令taskkill
关闭资源管理器文件夹窗口以及在标题栏中查找哪个字符串,则只需输入文件夹的名称或文件夹的完整路径即可
在Windows XP或单独进程中的启动文件夹窗口未启用时,文件夹窗口不会分别作为单独任务和单独进程打开
与打开多少文件夹窗口无关,每个用户的explorer.exe
进程数始终只有1个。每个文件夹窗口实际上只是一个始终运行Windows资源管理器(桌面)的窗口,在单独的线程中打开。Windows资源管理器只是假装文件夹窗口是Windows任务栏和Windows任务管理器的“应用程序”选项卡上的单独任务。但即使打开了多个文件夹窗口,Windows任务管理器的“进程”选项卡上也只列出一个explorer.exe
通过选择Explorer.exe并在该进程的句柄的下方窗格中查看,可以使用的免费工具Process Explorer更好地观察Windows资源管理器的这种行为,该进程的句柄中包含许多其他句柄,也包含打开的文件夹窗口的句柄
需要一个控制台应用程序,它按标题查找窗口,获取此窗口的句柄,并将WM_CLOSE
事件消息发送到此文件夹窗口。例如,见
我发现的解决方案在XP SP 3上运行良好。您只需要一个小工具:
启用“文件夹视图选项”下的“标题中显示完整路径”时,会出现错误
您可以将“测试”替换为完整路径,或禁用完整路径显示
默认情况下,资源管理器作为单个进程运行,任何打开的窗口都只是该进程的一个线程。
通常,要关闭程序,您需要向进程发送一条关闭消息。在这种情况下,关闭explorer.exe将关闭所有资源管理器窗口
要关闭单个窗口,您需要通过每个窗口自己的进程打开每个窗口。
这可以通过注册表设置或在“查看->选项->查看->高级设置”下启用来完成:“启动…单独进程”
a) 查找要关闭的窗口的PID(进程ID)
通过taskmanager:
1.在进程列表中,单击“Windows资源管理器”左侧的箭头
2.检查窗口名称是否与要关闭的窗口匹配
3.右键单击“Windows资源管理器”,单击“转到详细信息”
4.记录pid
通过CMD:
tasklist/V/FI“IMAGENAME eq explorer.exe”
如果每个资源管理器窗口在其自己的进程中打开,则上述命令将在最后一列中显示窗口标题
否则将显示“不适用”
所有资源管理器窗口的pid都是相同的。Explorer.exe进程有自己的pid,标题为“N/A”
如果已启用“单独进程”,例如通过文件夹视图选项,则可以通过taskkill的进程id和筛选器选项关闭每个窗口
要关闭,必须首先激活所需的窗口,否则使用pid关闭将关闭最后一个激活的窗口,或者使用窗口标题过滤器关闭将给出错误:
信息:没有使用指定条件运行的任务
b) taskkill/pid
将关闭最后一个活动窗口
重复此命令将在下一个窗口中显示
或taskkill/im explorer.exe/fi“windowtitle eq”
或taskkill/fi“IMAGENAME eq explorer.exe”/fi“windowtitle eq”
不区分大小写
如果在文件夹视图中启用了标题栏中的完整路径,则包括完整路径或通配符
要关闭所有资源管理器窗口:
taskkill/im explorer.exe
笔记:
要激活资源管理器窗口,如果启用了窗口重用,则发出相同的命令打开窗口。
资源管理器窗口(ing)进程的pid位于响应表的最后一行“pid”列中;可通过FOR循环访问。
从@HelpingHand:
激活窗口的vbs解决方案:
在Win 10上测试我曾尝试设置完整路径,但都不正确。它在Windows 8.1中工作,但从Mofi的回答和评论来看,了解Windows版本很重要。我测试时不是这样的。对explorer.exe
使用任务列表和筛选器,然后启动explorer c:\folder
并重复您的taslisk命令。您将找到两个
nircmd.exe win close title "some window title"