关闭文件夹的批处理文件窗口

时间:2014-07-23 12:56:52

标签: batch-file directory

我的桌面上有一个名为test的文件夹。我想创建一个批处理文件,以便在使用Windows资源管理器打开此文件夹时自动关闭窗口。我尝试了下一个命令,但执行

时没有任何反应
TASKKILL /F /FI "WINDOWTITLE eq test" /IM explorer.exe

显示的消息是

No tasks running with the specified criteria.

任何帮助?

4 个答案:

答案 0 :(得分:3)

如果在Windows注册表中

,则无法使用命令taskkill关闭文件夹的Windows资源管理器窗口
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

双字 SeparateProcess 分别具有值 0 选项在单独的进程中启动文件夹窗口 查看 Folder Options 的标签未选中。

foxidrive发现时(请阅读下面的评论)我也可以确认,在Windows XP SP3上启用此设置对即使重新启动后在打开的文件夹上运行的explorer.exe的数量也没有影响视窗。

因此,它取决于Windows的版本(2000,XP,Vista,7,8,8.1)和文件夹选项

  • 显示标题栏中的完整路径
  • 在单独的流程中启动文件夹窗口

如果可以使用命令taskkill来关闭资源管理器文件夹窗口以及在标题栏中找到哪个字符串,只需要文件夹的名称或文件夹的完整路径。

在Windows XP上或在单独的进程中启动文件夹窗口未启用时,文件夹窗口不会作为单独的任务分别作为单独的进程打开。

独立于打开多少个文件夹窗口,每个用户的explorer.exe进程数始终为1.每个文件夹窗口实际上只是一个单独打开的Windows资源管理器(桌面)窗口线。 Windows资源管理器只是假装文件夹窗口是Windows任务栏上和Windows任务管理器的应用程序选项卡上的单独任务。但是,即使打开了多个文件夹窗口,Windows任务管理器的进程选项卡上也只列出了一个explorer.exe

使用{em> explorer.exe 的免费工具 Process Explorer 可以更好地观看Windows资源管理器的这种行为,并在 explorer.exe 上查看< strong>处理此进程,其中包含许多其他句柄以及打开的文件夹窗口的句柄。

需要一个控制台应用程序,它按标题查找窗口,获取此窗口的句柄并将WM_CLOSE事件消息发送到此文件夹窗口。参见例如

答案 1 :(得分:1)

我找到的解决方案here在XP SP 3上运行良好。您只需要一个小工具NirCmd

nircmd.exe win close title "some window title"

答案 2 :(得分:0)

此问题适用于Windows 8.1explorer folder options设置为single window,但是根据Mofi的回答和Mofi的回答中的评论,那么解决方案取决于Windows版本

Windows 8.1中有效的功能在Windows XP中不起作用。

TASKKILL /F /FI "WINDOWTITLE eq %userprofile%\desktop\test" /IM explorer.exe

答案 3 :(得分:0)

启用“文件夹视图”选项下的标题中显示完整路径时,将导致错误。

您可以将“ test”替换为完整路径,或禁用完整路径显示。

默认情况下,资源管理器作为单个进程运行,任何打开的窗口都只是该进程的一个线程。
通常,要关闭程序,您需要向进程发送一条关闭消息。在这种情况下,关闭explorer.exe将关闭所有资源管理器窗口。

要关闭单个窗口,您需要通过自己的过程打开每个窗口。 这可以通过注册表设置或在“视图”->“选项”->“视图”->“高级设置”下启用:“启动...单独的过程”

a)在您要关闭的窗口中找到PID(进程ID)。

通过taskmanager:
1.在进程列表中,单击“ Windows资源管理器”左侧的箭头
2.检查窗口名称是否与您要关闭的窗口匹配
3.右键单击“ Windows资源管理器”,单击“转到详细信息”
4.记录pid

通过CMD:
tasklist /V /FI "IMAGENAME eq explorer.exe"

如果在自己的进程中打开了每个浏览器窗口,则上述命令将在最后一列显示窗口标题。
否则将显示“ N / A”。

所有资源管理器窗口的pid将相同。 Explorer.exe进程具有自己的pid,标题为“ N / A”
如果已启用“单独过程”,例如通过“文件夹视图”选项,然后可以通过taskkill的进程ID和过滤器选项关闭每个窗口。

要关闭,必须先激活所需的窗口,否则使用pid关闭将关闭最后一个活动窗口,或者使用窗口标题过滤器关闭将给出错误:

信息:没有按指定条件运行的任务。

b)taskkill /pid <pid> 将关闭最后一个活动窗口。
重复此命令将进入下一个窗口。

taskkill /im explorer.exe /fi "windowtitle eq <window name>"
taskkill /fi "IMAGENAME eq explorer.exe" /fi "windowtitle eq <window name>"

<窗口名称>不区分大小写
如果在“文件夹”视图中启用了标题栏中的完整路径,请添加完整路径或通配符。

要关闭所有资源管理器窗口,请执行以下操作:
taskkill /im explorer.exe

注意:

  1. 如果启用了窗口重用,则要激活资源管理器窗口,请发出相同的命令来打开窗口。
  2. 资源管理器窗口的进程的pid在响应表的最后一行中的“ PID”列中;可以通过FOR循环进行访问。
  3. 从@HelpingHand关闭窗口的vbs解决方法:
    https://superuser.com/questions/1263315/how-to-close-a-particular-opened-folder-using-cmd-or-batch-file
  4. 激活窗口的vbs解决方法:
    http://superuser.com/questions/327676/application-to-automatically-switch-between-two-applications-in-windows

在Win 10上测试