Git Bash 和 Composer - 运行 没有扩展名

Git Bash and Composer - Running without an extension

我已经为 Windows 安装了 Git,配置为在 Git Bash.

中专门使用 Git 命令

所以我有一个文件 composer.cmd 坐在 composer.phar 旁边,看起来像这样:

@echo off
php C:\bin\composer.phar %*

但是,我仍然需要在命令末尾输入.cmd.phar才能看到它。扩展名 .CMD 存在于 $PATHEXT 中,但似乎无关紧要。因为我放弃了扩展名而不得不重新输入命令,这打乱了我的节奏,而且我能够 运行 .exe 没有扩展名的文件似乎非常随意。

我想知道是否有办法强制它接受 .cmd 文件不需要指定扩展名。而且我没有使用 MSI 包来安装 Composer。

因为 CMD session supports both .bat and .cmd,请检查您的同一个脚本在被命名为 composer.bat

时是否可以在没有扩展名的情况下被调用

我知道我可以在没有 .xxx

的情况下调用我的脚本 (.bat)

来自 git bash 会话的位,我需要添加 cmd /C:

git bash
cmd "/C myscript"
# or
cmd //c myscript

参见:

  • "how do I execute a batch file and then return to git console?")
  • "Weirdness when running a command with CMD.exe /C with args"

myscript可以是一个myscript.bat,只要在WindowsPATH里,就会执行。
在它执行后,你又回到了 git bash.

或者您可以将 .bat/.cmd 脚本包装在 shell 脚本中:

$ cat myscript.sh
cmd << EOD
myscript $@
EOD
$

那样的话,一个简单的myscript就够了。

您需要在与 composer.bat 相同的目录中创建一个新文件,并将其命名为 composer,不带扩展名。包括这一行:

cmd "/C composer.bat $@"

在此之后命令应该从 git bash:

composer -V