批处理脚本在同一位置启动Windows资源管理器的多个实例

时间:2012-09-22 12:31:54

标签: windows batch-file

我的Windows XP桌面上有一个批处理脚本(LaunchWindowsExplorers.bat),它应该启动几个Windows资源管理器实例。

看起来像这样:

LaunchWindowsExplorers.bat

start explorer "C:\SomeDirectory" 
start explorer "C:\SomeDirectory" 

当我双击文件LaunchWindowsExplorers.bat

我希望看到

  • Windows资源管理器的两个实例在“C:\ SomeDirectory”处打开。

相反,我看到了

  • 只有一个Windows资源管理器实例在“C:\ SomeDirectory”处打开。

我需要做些什么才能让这个脚本打开两个Windows资源管理器实例,每个实例都在“C:\ SomeDirectory”打开?

感谢。

3 个答案:

答案 0 :(得分:5)

您可以使用explorer /n,"C:\SomeDirectory"explorer /e,"C:\SomeDirectory"explorer /root,"C:\SomeDirectory"(取决于您想要的视图)。从这里解释选项:http://support.microsoft.com/kb/314853

  

选项功能

     
     

/ n打开默认的新单窗格窗口                        选择。这通常是驱动器的根源                        Windows已安装。如果窗口已经存在                        打开,重复打开。

     

/ e在默认视图中打开Windows资源管理器。

     

/根,<对象>打开指定对象的窗口视图。

     

/选择,和LT;对象>用指定的文件夹,文件打开一个窗口视图,                        或选择的节目。

     

有趣的是,这种行为(不显示同一目录的第二个窗口)似乎特定于XP。 Win7只是启动资源管理器的第二个副本。我没有检查过Vista。

答案 1 :(得分:1)

虽然我不确定解决方案,但您是否尝试将其更改为: start explorer "C:\SomeDirectory"
start explorer "C:\AnotherDirectory"
检查发生了什么?
我会假设正在发生的事情是启动资源管理器检查是否已经打开了一个资源管理器,如果这是错误的话它只会打开一个新的(否则它只是重定向当前打开的资源管理器) )。很抱歉,我无法提供更多帮助。

答案 2 :(得分:1)

我建议你在我之前尝试wmz的答案。我的答案是一个可怕的,肮脏的黑客,应该只被视为最后的手段。

我的示例脚本所做的是创建要打开的文件夹的随机子文件夹,打开它,然后删除随机子文件夹,并期望资源管理器正常移动到父文件夹,这是您实际想要打开的文件夹。

这很糟糕,很糟糕,很可怕,但它适用于我的Win7机器。 :)不幸的是,我没有WinXP机器/ VM,要正确测试它,如果资源管理器将文件夹锁定为正在使用,它可能会完全失败,因为它正在显示;我不记得什么时候改变了。此外,这种方法需要对文件夹进行写访问,并且很容易被不幸的时间,侵略性的反病毒或任何其他随机性破坏。我说够了,这有多可怕吗? :)

call :ForceStartExplorerWindow .
call :ForceStartExplorerWindow .
call :ForceStartExplorerWindow .

GOTO :EOF


:: Pass The location to open as %1
:ForceStartExplorerWindow

SETLOCAL

set __ForceStartTempDir=%1\ThisShouldNeverExist-%RANDOM%
md %__ForceStartTempDir%
start explorer %__ForceStartTempDir%

:: Hope this wait is long enough for Explorer to finish loading it...
ping -n 2 localhost >NUL

:: Hope this rd works...
rd %__ForceStartTempDir%
:: FUTURE: Consider retrying upon failure.

:: End of ForceStartExplorerWindow
GOTO :EOF