あなたが以下に見るように、 %AppData%npm
システム変数Pathに追加されます。私もUser Path変数に追加しようとしました。 grunt.cmd
ディレクトリに存在しますが、絶対パスで指定した場合にのみ動作します。 AKA、経路は機能しません。
C:UsersTeamCity>echo %path%
%AppData%npm;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Windows
System32WindowsPowerShellv1.0;c:Program Files (x86)Microsoft SQL Server10
0ToolsBinn;c:Program FilesMicrosoft SQL Server100ToolsBinn;c:Program F
ilesMicrosoft SQL Server100DTSBinn;c:Program Files (x86)Microsoft SQL Ser
ver100ToolsBinnVSShellCommon7IDE;c:Program Files (x86)Microsoft SQL Ser
ver100DTSBinn;C:Program FilesMicrosoftWeb Platform Installer;C:Program
Filesnodejs
C:UsersTeamCity>dir %appdata%npm
Volume in drive C has no label.
Volume Serial Number is B845-1135
Directory of C:UsersTeamCityAppDataRoamingnpm
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:UsersTeamCity>grunt
"grunt" is not recognized as an internal or external command,
operable program or batch file.
C:UsersTeamCity>%appdata%npmgrunt
grunt-cli: The grunt command line interface. (v0.1.9)
実行中:
- Windows Server 2008 R2データセンター
- サービスパック1
- 64ビット
回答:
回答№1は2私はあなたがパス内の可変展開を遅らせることはできないと思っています。パス内の何がそのまま使われるのか、それは検索中に再解釈されません。
実際、あなたはそれを得るために本当に一生懸命働いたにちがいありません。 %AppData%
次のようなことをする必要があるからです:
path=^%AppData^%npm;%path%
あなたがちょうど使用する場合:
path=%AppData%npm;%path%
実際のパスが置換されていることが分かります。パスは次のようになります。
C:UsersTeamCityAppDataRoamingnpm;C:Windowssystem32; ...
回答№2の場合は0
興味深いことに、「それをもう一度やり直す」最後の努力が実際に働いた。別の方法として、追加したパス全体をコピーしてcmdを入力することもできます。
> SET PATH=
パスを貼り付けます。