如下所示,系统路径变量中添加了%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)
继续:
答案 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=
并粘贴你的路径。