Git Bash and Composer - Running without an extension In some cases, you may need to run Git Bash and Composer without their file extensions. This can be useful if you want to execute a command quickly without typing the full file name. To achieve this,
Git Bash and Composer - Running without an extension In some cases, you may need to run Git Bash and Composer without their file extensions. This can be useful if you want to execute a command quickly without typing the full file name. To achieve this,
我已经安装了适用于Windows的Git,并配置了仅在Git Bash中使用Git命令。所以,我有一个名为composer.cmd
的文件,它与composer.phar
放在一起,内容如下:
@echo off php C:\bin\composer.phar %*
然而,我仍然需要在命令的末尾输入.cmd
或.phar
才能使其识别。扩展名.CMD
存在于$PATHEXT
中,但似乎并不重要。因为我忘记了扩展名而导致不得不重新输入命令打断了我的节奏,而且我能够运行没有扩展名的.exe
文件似乎是非常武断的。
我想知道是否有一种方法可以强制它接受不需要指定扩展名的.cmd
文件。而且我没有使用MSI包来安装Composer。
问题:Git Bash和Composer在没有文件扩展名的情况下无法运行
原因:没有正确配置Composer的运行环境,导致Git Bash无法识别Composer命令。
解决方法:在与composer.bat文件相同的目录下创建一个名为composer的新文件,不带扩展名。在该文件中包含以下代码:
cmd "/C composer.bat $@"
完成上述操作后,Git Bash应该能够正确运行Composer命令。
代码如下:
# 在与composer.bat文件相同的目录下创建一个名为composer的新文件,不带扩展名 touch composer # 编辑composer文件,添加以下代码 cmd "/C composer.bat $@" # 保存文件并退出编辑器 # 在Git Bash中运行Composer命令 composer -V
以上操作将解决在Git Bash中无法运行Composer命令的问题。
问题出现的原因是在使用Git Bash时,无法直接运行没有扩展名的.bat或.cmd文件。解决方法是在文件名前面添加"cmd /C",或者将.bat/.cmd文件包装在一个shell脚本中。
在CMD会话中,可以使用.bat和.cmd文件的扩展名来调用脚本。但是在Git Bash会话中,需要在文件名前面添加"cmd /C"。
示例代码如下:
git bash cmd "/C myscript" # 或者 cmd //c myscript
如果想要直接运行没有扩展名的脚本文件,可以将.bat/.cmd文件包装在一个shell脚本中。示例代码如下:
$ cat myscript.sh cmd << EOD myscript $@ EOD $
通过上述方法,可以直接运行没有扩展名的脚本文件,而不需要添加扩展名。在执行完脚本后,会回到Git Bash会话中。
如果以上方法仍然无法解决问题,可以尝试其他解决方法。