私はbashスクリプトから以下を実行しようとしています。 (msysgit経由でインストールされたbash)
taskkill /IM ssh-agent.exe
taskkill
から画面に表示される出力は次のとおりです。
ERROR: Invalid argument/option - 'C:/Program Files/Git/IM'.
Type "TASKKILL /?" for usage.
実行可能ファイルは実行中ですが、/IM
は、それをエスケープするために何をしようとしても拡張されています...
私は\/IM
を使用しようとしましたが、スラッシュをエスケープせずに\/IM
を送信します。eval、cmd/c startなどを使用して実行するいくつかの異なる方法を試しましたが、それらはすべて問題があるようです。私もset -o noglob
を試しましたが、これも機能しませんでした。 $'\057/'IM
または同様の試みもしませんでした...
私のコメントは実際に答えを提供したので、投稿します。
_//
_のように、スラッシュを別のスラッシュにエスケープしてはどうでしょうか。 _/r
_パラメータをエスケープした場所でこのコマンドを実行すると、機能します:_start C:/folder/beep 2000 250 100 //r 3
_
ソース: http://oldwiki.mingw.org/index.php/switches%20with%20forward%20slashes
ミニマリストGNU for Windows
MSYSでスラッシュを使用してスイッチを渡す
MSYSでは、 "/ c"のコマンドライン引数はC:ドライブとして解釈されるため、スラッシュで始まる引数を渡すには、2つのスラッシュを使用する必要があります。たとえば、MSYSでこのコマンドを使用するには:
_
cmd /c echo foo
_使用する:
_
cmd //c echo foo
_シェルスクリプトでWindowsスタイルのパスを使用する必要がある場合は、
x=$(cd /unix/path && cmd //c cd)
X変数には、/ unix/pathへのWindows対応パスが含まれています。
「bashファイルの拡張を無効にする」などのさまざまな検索を何時間も探した後、実行しようとしている実行可能ファイル"bash" "windows" taskkill
を具体的に検索して見つけたので、見つけました この答え 、それは最終的に私のために働きました。
cmd " /c taskkill /F /IM ssh-agent.exe"