cygwinでパラメータを使用してWindowsプログラムを実行する

cygwinでパラメータを使用してWindowsプログラムを実行する

cygwinコンソールでWindowsプログラムを実行したいです。さまざまな形式を試しましたが、正しい構文が見つかりませんでした。

 $ cmd /C "C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe format input=sentencia.tmp output=sent_formateada.tmp"
    "C:\Program" no se reconoce como un comando interno o externo,
    programa o archivo por lotes ejecutable.

 $ cmd /C "C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe" format input=sentencia.tmp output=sent_formateada.tmp
        format input=<archivo o directorio de entrada> output=<archivo o directorio de salida>


 $ cmd /C C:\\"Program Files"\\sqldeveloper\\sqldeveloper\\bin\\sdcli.exe format input=o:\\Mezcla\\Scripts\\Oracle\\Informes_HTML\\TMP\\sentencia.tmp output=o:\\Mezcla\\S cripts\\Oracle\\Informes_HTML\\TMP\\sent_formateada.tmp

    Error en input=o:\Mezcla\Scripts\Oracle\Informes_HTML\TMP\sentencia.tmp output=o:\Mezcla\Scripts\Oracle\Informes_HTML\TMP\sent_formateada.tmp
    format input=<archivo o directorio de entrada> output=<archivo o directorio de salida>
    Comando terminado.

ベストアンサー1

なぜcmdを呼び出すのですか?これは不要な追加レベルの複雑さです。 Bashから直接Windowsプログラムを呼び出すことができます。

'C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe' format input=sentencia.tmp output=sent_formateada.tmp

または

/cygdrive/c/Program\ Files/sqldeveloper/sqldeveloper/bin/sdcli.exe format input=sentencia.tmp output=sent_formateada.tmp

またはshによって参照される他の方法。

cmdを呼び出す必要がある場合は、標準入力またはバッチファイルにcmdコードを渡す必要があるかもしれません。なぜなら、引用符が異なるように解析される/cからです/c(私には理解できません)。そうだろう

cmd <<<'"C:\Program Files\sqldeveloper\sqldeveloper\bin\sdcli.exe" format input=sentencia.tmp output=sent_formateada.tmp'

おすすめ記事