在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
),所以没有问题。