Arc*_*tem 24 windows git bash cmd git-bash
这更令人烦恼而不是问题,但我非常想了解这里的语义.
我想要做的就是在临时命令提示会话上运行任意命令,该会话本身在bash会话下运行.
我的成功率是50/50,因为一些命令按预期工作,而其他命令则没有那么多.
我认为问题可能在于没有正确排列的参数(即缺失或合并的参数)
我会尽力解释我的意思是怪异的一系列命令和响应.(我正试着在屏幕上打印测试字.)
我在GNU bash下运行这些,版本3.1.0(1)-release(i686-pc-msys)与Git-1.8.4捆绑在一起:
第一次尝试:
$ cmd /c echo test
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\>
Run Code Online (Sandbox Code Playgroud)
第二次尝试:
$ cmd '/c echo test'
test"
Run Code Online (Sandbox Code Playgroud)
第三次尝试:
$ cmd "/c echo test"
test"
Run Code Online (Sandbox Code Playgroud)
第四次尝试:
$ cmd /c\ echo\ test
test"
Run Code Online (Sandbox Code Playgroud)
第五次尝试:
$ cmd "/c echo" test
'echo" test' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
我真的很感激上述行为的任何指示或见解,因为这对我来说是不合理的,让我疯狂!
编辑: 还有一个问题与此类似,但实际上并非如此,主要是因为它是关于通过CMD/C运行批处理文件而不需要任何参数.
它并没有真正回答我关于如何正确地为windows命令行应用程序提供参数的问题,即使这些示例是关于CMD/C的,这里的答案也可以应用于许多其他Windows命令行应用程序.
pat*_*yts 38
这实际上记录在ReleaseNotes文件中(在已安装的Git for Windows的顶级文件夹中)
此外,必须特别注意通过Windows程序Windows路径,因为他们不知道MSys样式POSIX路径 - 你可以使用类似$(cmd // c echo"$ POSIXPATH")的东西.
如果你使用cmd //c echo test它按预期工作.
$ cmd //c echo test
test
Run Code Online (Sandbox Code Playgroud)
原因是尝试确保posix路径最终正确传递给git实用程序.出于这个原因,Git for Windows包含一个影响命令参数的修改过的MSYS层.您应该注意,Git for Windows提供的bash shell和工具不能用作Windows的通用unix工具.如果你想要一个通用的unix风格的工具集,那么你应该安装MSYS或cygwin.Git Bash shell设置为使用git,有时显示.
小智 6
阅读本文后,我找到了对我有用的解决方案:
$ cat gvim.sh
cmd << EOD
gvim $@
EOD
$
Run Code Online (Sandbox Code Playgroud)
Windows 8.1,Git(版本1.9.5-preview20141217),GNU bash,版本3.1.20(4)-release(i686-pc-msys).