2012-01-03 8 views
1
2.bat calls 3.bash "cmd /c "path to command with spaces"" 

3.bashはbashスクリプトが実行されるとき、それは実行可能ファイルとそのコマンドを認識しないので、私はcmd /c commandを使用していcygwinで引用符を効果的に使用するには?

cmd="$1" 
"$cmd" 

が含まれているので、私はCMD/Cでそれを起動する必要があります。しかし、これは引用に別の問題を引き起こす。

+ cmd='cmd /c "c:\program' 

これを修正するにはどうすればよいですか?

答えて

1

あなたは、内側の引用符をエスケープする必要があります

3.bash "cmd /c \"path to command with spaces\"" 

また、あなたはコマンドcygpathを使用することができ、内側の引用符をエスケープの代わりに、cmd

#3.bash 
"`cygpath -u "$1"`" 

とコマンド

3.bash "path to command with spaces" 
+0

は生成: 'CMDを/ c "スペースを使ってコマンドするパス":そのようなファイルやディレクトリはありません。 'cygpath -uを使用する" $ 1 "うまくいっていますが、私はbashスクリプトを最小限に変更したいので、最初の解決策を取り入れることに取り組んでいます。 – nnn

+0

あなたは確かにcmdはパスにありますか?空であるコマンドへのパスは、内部または外部のコマンドとして 実行可能なプログラムまたはバッチファイルとして認識されません。 –

+0

はい、「コマンドへのパススペースで "正しいです。 cygpath -uは同じパスで動作します。 – nnn

関連する問題