Windows 2008 Server上的%PATH%实际上无法正常工作

时间:2013-05-29 03:31:23

标签: path cmd windows-server-2008

如下所示,系统路径变量中添加了%AppData%\npm。我也尝试将其添加到User Path变量中。文件grunt.cmd存在于目录中,但仅在我使用绝对路径指定时才有效。 AKA,路径不起作用。

C:\Users\TeamCity>echo %path%
%AppData%\npm;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows
\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\10
0\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program F
iles\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Ser
ver\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Ser
ver\100\DTS\Binn\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program
Files\nodejs\

C:\Users\TeamCity>dir %appdata%\npm
 Volume in drive C has no label.
 Volume Serial Number is B845-1135

 Directory of C:\Users\TeamCity\AppData\Roaming\npm

05/29/2013  03:14 AM    <DIR>          .
05/29/2013  03:14 AM    <DIR>          ..
05/29/2013  03:14 AM               298 grunt
05/29/2013  03:14 AM               159 grunt.cmd
05/29/2013  03:13 AM    <DIR>          node_modules
               2 File(s)            457 bytes
               3 Dir(s)  23,690,498,048 bytes free

C:\Users\TeamCity>grunt
'grunt' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\TeamCity>%appdata%\npm\grunt
grunt-cli: The grunt command line interface. (v0.1.9)

继续:

  • Windows Server 2008 R2数据中心
  • Service Pack 1
  • 64位

2 个答案:

答案 0 :(得分:2)

我认为你不能推迟路径中的变量扩展。路径中的内容按原样使用,在搜索过程中不会重新解释。

事实上,你必须非常努力地将其作为%AppData%来实现,因为你需要做类似的事情:

path=^%AppData^%\npm;%path%

如果您只是使用:

path=%AppData%\npm;%path%

你会发现实际路径会被替换,所以路径变为:

C:\Users\TeamCity\AppData\Roaming\npm;C:\Windows\system32; ...

答案 1 :(得分:0)

有趣的是,“将其关闭再打开”的最后努力确实奏效了。或者,您可以在添加它之后复制整个路径并键入cmd:

> SET PATH=

并粘贴你的路径。