我正在尝试在批处理文件中执行GhostScript。
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窗口。我必须手动键入退出或关闭窗口以将控件返回到父级以批量执行下一个命令。 我们如何修改批处理文件以便执行ghost脚本?最初我使用Process.Start(ProcessInfo)从C#程序调用此文件。欢迎提出建议
答案 0 :(得分:7)
为避免Ghostscript打开窗口,请勿使用gswin32.exe
。
改为使用gswin32c.exe
。(名称中的 c 仅用于表示控制台...)
另外,请注意 Text 文件不能作为Ghostscript的输入。
Ghostscript只能处理PostScript,Encapsulated PostScript或PDF文件。
您可以根据需要为输出文件命名
但是您的-sDEVICE=pdfwrite
会产生PDF输出,因此如果您希望以后避免混淆,建议您使用.pdf
后缀作为输出文件。
-dBATCH
的拼写区分大小写
-dBatch
无效。
(-dBATCH
导致Ghostscript在作业的最后一页完成后返回 - 否则它将切换到交互模式并显示其GS>
提示...它不用于处理&# 39;批量输入文件',如您所假设的那样。)
批处理文件中的2个命令都使用相同的输入参数 这意味着2个输出文件将是相同的,只是有不同的文件名。
我建议使用以下命令行方案:
gswin32.exe ^
-dNOPAUSE ^
-dBATCH ^
-sDEVICE=pdfwrite ^
-sOUTPUTFILE=output2.pdf ^
"file1.ps" "file2.pdf" "file3.eps"
答案 1 :(得分:0)
请改用gswin32c
。这是一个控制台应用程序,不会创建手动关闭所需的窗口。