我正在尝试学习Meteor JS的教程,但是我无法使用GitHub for Windows自带的Git Shell正常运行它。Git Shell找不到meteor命令。在cmd中可以正常工作,并且已经在Windows环境路径中添加了该命令。我做错了什么?
我正在尝试学习Meteor JS的教程,但是我无法使用GitHub for Windows自带的Git Shell正常运行它。Git Shell找不到meteor命令。在cmd中可以正常工作,并且已经在Windows环境路径中添加了该命令。我做错了什么?
要在MinGW的MSYS shell中运行*.bat
命令,您必须将执行重定向到cmd.exe
,因此:
cmd //c foo.bat [args ...]
foo.bat
命令文件必须在$PATH
目录中的一个目录中,(或者您必须使用斜杠指定完整路径名...使用斜杠,不要使用反斜杠,除非您对于每个路径名分隔符使用两个)。此外,请注意双斜杠以通知cmd.exe
您正在使用其/C
选项,(因为它不接受MSYS shell首选的-c
形式)。
如果您想要从MSYS shell 直接执行foo.bat
文件,可以创建一个两行Bourne shell包装脚本,只需将其命名为foo
并与之一起放置(与foo.bat
在同一个目录中),如下:
#!/bin/sh
cmd //c "$0.bat" "$@"
所以在您的情况下,您需要创建脚本文件meteor
与meteor.bat
并存。
实际上,由于此包装器脚本是完全通用的,只要您的文件系统支持硬链接(如NTFS对单个磁盘分区上的文件),您可以创建一个包装器脚本,并将其链接到您想要以这种方式调用的所有*.bat
文件名;(提示:使用MSYS ln
命令链接文件)。
我没有使用Windows,所以无法告诉您确切的路径,但您需要搜索'meteor'所在的'bin'文件夹的路径(类似于C:...\bin),然后将其添加到PATH环境变量中。
或者,您可以在此处安装可用的Meteor Windows版本:https://win.meteor.com
.bat
文件的形式提供,那么显然它是打算从cmd.exe
中运行的。MinGW的MSYS shell(我相信这是Windows版Git所推广的),不能直接运行它(它可以运行.exe
或Bourne shell脚本,但不能运行.bat
文件)。但是你可以通过在$PATH
目录中运行cmd //c meteor ...
来间接地运行它(假设meteor.bat
在其中一个目录中)。 - Keith Marshall
*.bat
文件创建一个简单的包装脚本;有关详细信息,请参见我的扩展答案。 - Keith Marshall