从sh或bash脚本运行/调用windows批处理脚本

Bog*_*xim 7 bash cmd batch-file msysgit

我有一个sh/bash脚本需要调用带参数的批处理文件(参数是文件名,并以DOS/Windows格式给出).

基本上我有: script.sh

#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse
Run Code Online (Sandbox Code Playgroud)

我正在使用GNU bash, version 3.1.0(3)-release (i686-pc-msys)shell作为shellmsysgit

问题是,当我从脚本运行时: $COMSPEC /c batchfile param1 param2 要么我得到一个看似bash的"空提示",但是控制台上没有显示命令结果,要么cmd.exe启动,要么不执行脚本.

我试过引用这些参数来像这样猛击:

$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何结果.

Bog*_*xim 10

看来我需要从cmd param中逃脱这个空间:

$COMSPEC \/c batch-file\ \"$var1\"\ \"$var2\"
Run Code Online (Sandbox Code Playgroud)

要么

$COMSPEC /c batch-file\ \"$var1\"\ \"$var2\"
Run Code Online (Sandbox Code Playgroud)

我不确定/ from/c是否需要被转义,但它可以通过两种方式进行转义.