7

パラメータ付きのバッチ ファイルを呼び出す必要がある sh/bash スクリプトがあります (パラメータはファイル名で、DOS/Windows 形式で指定されます)。

基本的に私は持っています: script.sh

#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse

私はGNU bash, version 3.1.0(3)-release (i686-pc-msys)シェルとして使用していますmsysgit

問題は、スクリプトから実行すると $COMSPEC /c batchfile param1 param2 、bash のような「空のプロンプト」が表示されるか、コンソールにコマンドの結果が表示されないか、cmd.exe起動してもスクリプトが実行されないことです。

次のようにパラメータを引用してbashしてみました:

$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"

しかし、私は何の結果も得られませんでした。

4

1 に答える 1

10

cmd パラメータからスペースをエスケープする必要があったようです:

$COMSPEC \/c batch-file\ \"$var1\"\ \"$var2\"

また

$COMSPEC /c batch-file\ \"$var1\"\ \"$var2\"

/ から / をエスケープする必要があるかどうかはわかりませんが、両方のエスケープ方法で問題なく動作します。

于 2010-08-03T10:21:04.153 に答える