4

GhostScriptをバッチファイルで実行しようとしています。

batch.bat

gswin32.exe ^
  -dNOPAUSE ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output1.txt ^
  -dBatch ^
   "file1.txt" "file2.txt"

gswin32.exe ^
  -dNOPAUSE ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output2.txt ^
  -dBatch ^
   "file1.txt" "file2.txt"

問題は、最初の行が実行されると、GhostScriptウィンドウが開くことです。手動でquitと入力するか、ウィンドウを閉じて、コントロールを親に戻し、次のコマンドをバッチで実行する必要があります。ゴーストスクリプトを実行するようにバッチファイルを変更するにはどうすればよいですか?もともと私はProcess.Start(ProcessInfo)を使用してC#プログラムからこのファイルを呼び出しています。提案は大歓迎です

4

2 に答える 2

12
  1. Ghostscript がウィンドウを開かないようにするには、使用しないでくださいgswin32.exe代わりに
    使用してください。gswin32c.exe(名前のcは、コンソール専用であることを示すためのものです...)

  2. また、テキストファイルは Ghostscript への入力として使用できないことに注意してください。
    Ghostscript は、PostScript、カプセル化された PostScript、または PDF ファイルのみを処理できます。

  3. 出力ファイルに好きな名前を付けることができます。
    ただし、-sDEVICE=pdfwritePDF 出力が生成されるため.pdf、後で混乱を避けるために、出力ファイルにサフィックスを使用することをお勧めします。

  4. for のスペル-dBATCHは大文字と小文字が区別されます。
    -dBatch動作しないでしょう。
    -dBATCHジョブの最後のページが完了した後にGhostscriptが返されます-そうでない場合、インタラクティブモードに切り替わり、GS>プロンプトが表示されます...想定しているように、「入力ファイルのバッチ」を処理するためのものではありません。)

  5. バッチ ファイル内の 2 つのコマンドは、両方とも同じ入力パラメーターを使用しています。
    つまり、ファイル名が異なるだけで、2 つの出力ファイルは同じになります。

次のコマンドライン スキームを使用することをお勧めします。

gswin32.exe ^
  -dNOPAUSE ^
  -dBATCH ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output2.pdf ^
   "file1.ps" "file2.pdf" "file3.eps"
于 2012-07-31T18:46:45.930 に答える
1

gswin32c代わりに使用してください。これはコンソール アプリケーションであり、手動で閉じる必要があるウィンドウを作成しません。

于 2012-07-31T18:45:17.173 に答える