如何更改cmd.exe的默认启动目录?

时间:2010-01-20 02:58:29

标签: windows registry

我的程序最后一天如下

单击“开始”,“运行”,然后键入 Regedit.exe 导航到以下分支:

HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor

在右窗格中,双击“自动运行”并将启动文件夹路径设置为其数据,前面带有“CD / d”。如果缺少Autorun值,则需要在上述位置创建一个类型为REG_EXPAND_SZ或 REG_SZ 的值。

示例:要将启动目录设置为 D:\ learning \ perl ,请将自动运行值数据设置为 CD / d D:\ learning \ perl

然后我点击开始,运行并输入 cmd 。它成功了。我现在可以更方便地进行perl练习。

但是今天,我发现当我尝试构建我的Visual Studio 2005解决方案时,其中包含一些预构建事件命令,如下所示: perl.exe MyAppVersion.pl perl.exe AttrScan.pl 它不起作用。显示错误:无法找到路径。 我检查环境变量设置并找到变量 - path,它的值 - c:\perl\bin\;仍然存在。

Finially, 我尝试删除Regedit.exe配置“自动运行”值并再次测试。 问题已解决。

我只更改了cmd.exe命令的默认启动目录。为什么预构建事件perl命令受到影响? (我使用的是winxp和activePerl 5.8)

3 个答案:

答案 0 :(得分:4)

看起来Visual Studio正在使用cmd.exe来执行perl.exe。这并不罕见,并且像您所做的那样更改注册表也会影响其他程序,而不仅仅是Visual Studio。

手动执行CD / D或创建cmd.exe链接,将d:\ learning \ perl设置为起始目录。

答案 1 :(得分:1)

我在Windows 7 x64上注意到jdigitals建议创建一个设置d:\ learning \ perl的链接,因为起始目录不起作用。 Cmd.exe不会将其作为合法参数。此外,在Windows 7中,brian d foy所指的密钥并不存在。所以在Windows 7上,如果它不在系统卷(C :)上,似乎不可能在正确的目录中启动cmd。所以就我而言,这并没有解决。

答案 2 :(得分:1)

似乎这与Perl无关,但是是Windows问题:

我将HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun设置为C:\ Work。

当尝试在vim中使用git时,vim和gvim都没有使用vim-plugin。

调用应用程序时的工作目录始终强制为C:\ Work。

即使我从编辑器中打开的版本化存储库中找到了正确的文件,它找到并使用了git可执行文件,但它查找了存储库的错误目录。
无论文件是使用gvim中的鼠标从Windows打开的,还是通过vim中的cmd.exe打开的。

从注册表中删除了AutoRun字符串,一切都很好。 仍然可以找到PATH变量中列出的可执行文件,但是通过强制操作dir是错误的。(这是我在2分钟之前的观察中的解释。)