1

以下に示すよう%AppData%\npmに、システムの Path 変数に追加されます。また、それを User Path 変数に追加しようとしました。ファイルgrunt.cmdはディレクトリに存在しますが、絶対パスで指定した場合にのみ機能します。別名、パスが機能しません。

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 データセンター
  • サービス パック 1
  • 64ビット
4

2 に答える 2

2

パスで変数展開を延期できるとは思いません。パスにあるものはそのまま使用され、検索中に再解釈されることはありません。

%AppData%実際、次のようなことをする必要があるため、それを取得するために非常に一生懸命働いたに違いありません。

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

単に使用する場合:

path=%AppData%\npm;%path%

実際のパスが置き換えられるため、パスは次のようになります。

C:\Users\TeamCity\AppData\Roaming\npm;C:\Windows\system32; ...
于 2013-05-29T03:42:04.497 に答える
0

興味深いことに、「オフにしてから再びオンにする」という最後の努力が実際に機能しました. または、パスを追加した後にパス全体をコピーして、cmd と入力することもできます。

> SET PATH=

パスを貼り付けます。

于 2013-05-29T03:41:49.417 に答える