在Excel VBA的64位命令行程序中执行Ghostscript

我的Excel VBAmacros创build包含以下行的gs.cmd文件:

 "C:\Program Files\gs\gs9.10\bin\gswin64c.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图纸,主要是vector内容和一些大的位图,在pdfmarks文件中定义了数百个书签和数千个链接。

我看到的执行之间唯一的区别是,似乎是32位和另一个64位。

我不明白为什么Ghostscript在64位实例中做了一个完美的工作,但是在32位的实例中,大部分的工作都是正确的,它只是错过了创build大约5%的链接。 我期望它要么失败或工作。

我search了一下,看是否可以让Shell在64位环境下运行,但是我没有find解决scheme。

我该如何解决这个问题?

怎么样创build第二个.cmd文件来启动你想要的cmd版本?

它可能看起来像这样:

launcher.cmd:

 %SYSTEMROOT%\System32\cmd.exe /cc:\temp\gs.cmd 

cmd.exe的32位版本将位于64位系统上的%SYSTEMROOT%\Syswow64\中。 在32位系统上,我猜这个脚本会使用唯一的cmd.exe( %SYSTEMROOT%\System32\cmd.exe ),所以没有问题。