我的Excel VBA宏创建了一个包含以下行的gs.cmd
文件:
"C:Program Filesgsgs9.10bingswin64c.exe" @gsparams
echo %ProgramFiles%
pause
然后执行Shell "gs.cmd"
。
Ghostscript生成的PDF文件缺少几个链接,控制台显示C:Program Files (x86)
。
如果我从开始菜单中启动cmd.exe
并执行相同的gs.cmd
脚本,则生成的PDF文件是正确的,并且控制台显示C:Program Files
。
它的PDF文件包含许多36"x24"的CAD绘图,主要是矢量内容和一些大的位图,在pdfmarks文件中定义了数百个书签和数千个链接。
我看到的唯一不同的执行是一个似乎是32位,另一个是64位。
我不明白为什么Ghostscript在64位实例中做了一个完美的工作,但在32位实例中正确地完成了大部分工作,它只是错过了大约5%的链接的创建。我希望它要么失败,要么成功。
我搜索了一下,看看是否可以让Shell
在64位环境中运行,但我没有找到解决方案。
我该如何解决这个问题?
创建第二个.cmd文件来启动你想要的cmd版本怎么样?
它可能看起来像这样:
发射器。cmd:
%SYSTEMROOT%System32cmd.exe /c c:tempgs.cmd
32位版本的cmd.exe将在64位系统的%SYSTEMROOT%Syswow64
中。在32位系统上,我猜脚本将使用唯一可用的cmd.exe (%SYSTEMROOT%System32cmd.exe
),所以没有问题。