0
如何将任意命令行参数从MinGW外壳传递给本机Windows程序?如何将任意命令行参数从MinGW外壳传递给本机Windows程序?
我想要一个通用的解决方案,但可以用于任何有效的Windows文件名的解决方案是可以接受的。
如何将任意命令行参数从MinGW外壳传递给本机Windows程序?如何将任意命令行参数从MinGW外壳传递给本机Windows程序?
我想要一个通用的解决方案,但可以用于任何有效的Windows文件名的解决方案是可以接受的。
那个shell是Bash。 Cygwin/MSYS2 Bash可以接受Windows路径,但您需要使用空格和反斜杠来处理 。关于反斜线:
program 'C:\alfa.txt'
program C:\\alfa.txt
program C:/alfa.txt
关于空间:
program 'C:\alfa bravo.txt'
program C:\\alfa\ bravo.txt
program C:/alfa\ bravo.txt
正如你所看到的,如果提供的Windows路径,这是相当平直向前 。你可能会得到唯一的问题是,如果你想提供猛砸路径 到Windows原生程序:
program /tmp/alfa.txt
Windows自带的程序都没有的/tmp
甚至/
概念。 Cygwin的/ MSYS2有 cygpath
在转换这些路径,以帮助:
program $(cygpath -m /tmp/alfa.txt)
program "$(cygpath -w /tmp/alfa.txt)"
program "$(cygpath -m '/tmp/alfa bravo.txt')"
program "$(cygpath -m /tmp/alfa\ bravo.txt)"
program "$(cygpath -w '/tmp/alfa bravo.txt')"
program "$(cygpath -w /tmp/alfa\ bravo.txt)"
旁注:MinGW的是一个旧的项目。你应该使用Cygwin或MSYS2。
如果我想传递的路径中有空格,该怎么办? – Demi
@Demetri看到更新 – 2016-05-13 22:55:00