eck*_*kes 65 windows git cmd batch-file
我有一个小的实用程序脚本clear.bat
,它在我的源上做一些内务处理工作.
它是一个.bat
文件,因此我可以在Windows资源管理器中轻松双击它.
有时,我发现从我的Git bash执行它更方便(msysgit,如果这很重要).
为此,我打字
cmd
clear.bat
exit
Run Code Online (Sandbox Code Playgroud)
cmd
把我的Git bash变成一个普通的cmd
窗口,我可以轻松地执行我的批处理.当我输入时exit
,cmd
环境终止,我回到我的Git bash中.
这可以通过更简单的方式实现吗?
cmd /C clean.bat
自从文档说出来以后我就试过了
Syntax
CMD [charset] [options]
CMD [charset] [options] [/c Command]
CMD [charset] [options] [/k Command]
Options
/C Run Command and then terminate
/K Run Command and then return to the CMD prompt.
This is useful for testing, to examine variables
Run Code Online (Sandbox Code Playgroud)
编辑:
刚注意到帖子坏了.
我想是执行clean.bat
从GIT中的bash内,而无需键入三个命令上述(cmd
,clear.bat
,exit
).我只想.bat
从我的Git bash中执行该文件.显而易见的方法是创建一个单独的.sh
文件来执行相同的工作,但这将导致双重代码.
编辑2:
当我执行时cmd /C clean.bat
,Git bash变成一个普通的CMD环境,只显示提示.该文件clean.bat
未执行.就像我输入一样cmd
.
此外,添加一个/debug
开关确实没什么.似乎只会cmd
被评估,所有其他参数都会被忽略.
eck*_*kes 76
在玩了一下之后,我自己找到了解决方案:
cmd "/C clean.bat"
Run Code Online (Sandbox Code Playgroud)
诀窍.但我不知道为什么......
在某些时候,Git for windows 添加了对MSYS_NO_PATHCONV
环境变量的支持,因此除了 @eckes 和 @AlikElzin-kilaka 解决方案之外,您还可以
MSYS_NO_PATHCONV=1 cmd /c clean.bat
Run Code Online (Sandbox Code Playgroud)
总的来说,我更喜欢这种解决方案,因为它允许代码最接近普通的 bash,并且MSYS_NO_PATHCONV
根据您的首选情况有多种导出方法。
注意:Git for Window 的 bash 不支持 MSYS2 环境变量MSYS2_ARG_CONV_EXCL
为什么不会cmd "/c clean.bat"
产生其他错误?
事实证明,Windows 中的参数解析并不遵循与 *nix 中相同的通用规则。相反,在 Windows 中,根据您编译的运行时,参数的解析方式有所不同。基本上在 Windows 中,命令行参数作为“一个字符串”传入,然后由运行时解析。
例如cmd
以不同的方式解析参数wscript.exe
最后,您有望找到适合此方法的方法,并且它是三种解决方案中最“窗口式”的
这在这里解释得很好并且易于使用,但添加了一个额外的内容/
,这对可读性没有帮助
适用于Windows的Git(msysGit已被Git for Windows 1取代)常见问题解答说您有3个选项:
运行使用该winpty
实用程序时遇到问题的程序.这允许您继续使用更好的mintty终端,但如果您需要许多程序的解决方法,可能会变得笨拙.
修改Git Bash的快捷方式bash
直接运行,mintty
因此它使用默认控制台主机并将其配置为"Quick Edit",合理的大小和向后滚动以及合适的unicode字体.你仍然需要与控制台主机的其他怪癖一起生活.
安装并使用ConEmu.
归档时间: |
|
查看次数: |
45790 次 |
最近记录: |