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

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

它看起来像这样:

LaunchWindowsExplorers.bat

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

当我双击文件LaunchWindowsExplorers.bat

我期望看到

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

相反,我明白了

  • 只是在“C:\ SomeDirectory”打开的Windows资源pipe理器的一个实例。

我需要做什么来使这个脚本打开Windows资源pipe理器的两个实例,每个在“C:\ SomeDirectory”打开?

谢谢。

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

选项功能


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

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

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

/ select,<object>打开一个窗口视图,其中指定的文件夹,文件或程序被选中。


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

虽然我不确定解决方案,但您是否尝试将其更改为如下所示:
start explorer "C:\SomeDirectory"
start explorer "C:\AnotherDirectory"
并检查会发生什么?
我会假设发生的事情是,启动资源管理器检查是否已经打开一个资源管理器,只有当它是错误的(否则它只是重定向当前打开的)打开一个新的。
对不起,我不能有更多的帮助。

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

我的示例脚本所做的是创建一个随机的子文件夹,您要打开该文件夹,打开该文件夹,然后删除随机的子文件夹,并期望Explorer优雅地移动到父文件夹,这是您真正想要打开的文件夹。

这是可怕的,可怕的,可怕的,但它适用于我的Win7机器。 :)不幸的是,我没有一台WinXP机器/虚拟机,以便正确测试,如果浏览器将该文件夹锁定为正在使用中,它可能会完全失败,因为它正在显示; 我记不得什么时候改变了。 此外,这种方法需要对文件夹进行写入访问,并且很容易被不幸的时机,激进的反病毒或任何其他随机性破坏。 我是否已经说了足够多,但是,这是多么可怕? 🙂

 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