当我[ Shift+ 右键点击]一个文件夹不是在我的C
驱动器上并选择“在这里打开控制台”我得到一个cmd
窗口不是在正确的位置打开,但却指向C:\Windows\system32
。我必须手动切换到正确的驱动器,但当我这样做时,它却指向正确的文件夹。这几乎不是什么世界末日,但它是一个小小的烦恼,真的开始让我恼火了……
注意:它对于驱动器上的位置确实能正常工作C
。
这是在外部使用时的预期行为吗C
?
如果不是,我该如何修复?
如果是,我该如何将其更改为直接加载其他驱动器的文件夹?
例如,如果我尝试打开一个指向桌面上文件夹的控制台窗口,如下所示:
我收到一个cmd
窗口,指出C:\Windows\system32
我必须手动切换到D:
,但这样做之后,您可以看到其中的文件夹D:
已被成功选择:
更新
看来“在这里打开控制台”可能是非标准的(见评论)。
为了完整起见,事实证明,当我单击文件夹内部(它是“文件空间”,而不是文件夹图标本身)时,我会在列表下方看到可能是标准的“在此处打开命令窗口”,如下图所示,所以两者之间出现了一些差异:
答案1
答案2
自我回答DMA57361显然已经解决了原始问题。我想添加一些我发现的信息……
HKEY_CLASSES_ROOT\Directory\shell\cmd
首先,我注意到名为 的键中有一个可疑的值Extended
。凭直觉,我将该值重命名为xxx-Extended
,现在“在此处打开命令窗口”菜单项经常出现而不需要 Shift 键。由于旧的 tweak-ui 解决方案不需要 Shift 键,这个发现让我很高兴!
HKEY_CLASSES_ROOT\Directory\shell\cmd\command
其次,我相对未修改的 Windows 7 Pro 64 位安装具有仅设置了默认值的注册表项cmd.exe /s /k pushd "%V"
(请注意,类型是 REG_SZ,而不是 REG_EXPAND_SZ。的含义%V
(以及报告的用法%L
)不是环境变量替换的结果,扩展必须由 Explorer 本身完成。)
可用的上下文菜单插件被列为注册表项的子项HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers
。(中的其他项....\shellex
是其他类型的 shell 扩展的处理程序。)其中一个处理程序,或者可能是其他扩展之一,可能是该项奇怪的默认值的来源....\command
。
编辑
相邻的键HKEY_CLASSES_ROOT\Directory\Background\shell\cmd
也有一个名为 的值Extended
。事实证明,这个键控制文件夹内容视图(右窗格和桌面本身)中的上下文菜单,而上面命名的键控制文件夹对象本身的上下文菜单(它们在右侧或桌面上的图标,或左侧文件夹树上的任何位置)。
答案3
pushd
如果您希望 Windows 7 将驱动器号切换到目录,即切换驱动器,则是必需的。
所需的注册表项如下所示(我称之为 DOS) - 将其放入 .reg 文件并执行:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\DOS]
[HKEY_CLASSES_ROOT\Folder\shell\DOS\command]
@="\"C:\\WINDOWS\\SYSTEM32\\CMD.EXE\" /s /K pushd \"%v\""