使用Windows批处理文件运行可执行文件

3

我有一个应用程序,想要使用批处理文件运行多个可执行文件(在我的情况下是一个名为AMDIS的程序http://chemdata.nist.gov/mass-spc/amdis/downloads/)。 在Windows命令提示符中,如果我输入以下命令,则可以正常工作

C:\NIST08\AMDIS32\AMDIS_32.EXE C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.CD‌​F /S /E

AMDIS_32是我想要运行的程序,C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.CDF是我想要分析的文件,/S /E是一些选项。

现在我想使用Windows 7中的批处理文件重复进行这些调用。我尝试使用以下批处理文件:

START C:\NIST08\AMDIS32\AMDIS_32.EXE C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.CD‌​‌​F /S /E

但似乎这并不起作用。有人知道我应该怎么做吗?

谢谢, 汤姆

编辑:根据论坛http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/fdb993d9-6a9c-4459-aedb-0283f2d6935d中的信息,我发现我的错误与将批处理文件保存为UNICODE而非ANSI编码有关 - 现在它可以工作了 - 感谢大家!!


总的来说,我认为最好不要告诉所有人你的私人文件系统是如何组织的。你可以为了提问而编造文件名和目录。 - Elazar
2个回答

3
:X
C:\NIST08\AMDIS32\AMDIS_32.EXE C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.CD‌​F /S /E
goto X

奇怪的是,如果我在命令提示符中键入C:\NIST08\AMDIS32\AMDIS_32.EXE C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.C‌​D‌​F /S /E,它可以正常工作,但是当我将其保存在.bat文件中,然后双击它时,只会弹出一个非常简短的命令提示符窗口,然后就消失了,但它并没有执行任何操作。有什么想法吗? - Tom Wenseleers

1
@Echo OFF

Set /A "Interval=3"

PUSHD "C:\NIST08\AMDIS32"

:Loop
Start /B AMDIS_32.EXE "C:\Users\Ento\Documents\GCMS\test_cataglyphis_iberica\queens\CI23_Q_120828_01.CD‌​F" /S /E
Ping -n %INTERVAL% Localhost >NUL
Goto :Loop

为什么不使用 timeout /t %INTERVAL% 呢? - Elazar
1
由于“Timeout”命令仅适用于Win7 / Vista,我们不知道OP的操作系统。 - ElektroStudios
@Tom 请尝试我的更新,更新前后的代码都运行正常。只需确保如果您不想使用Start命令的“/B”参数停止脚本执行即可。 - ElektroStudios
如果路径中没有空格,请不要使用双引号键输入“C:\NIST08\AMDIS32\AMDIS_32.EXE”来启动程序。在我最后一次编辑之前,我输入了以下内容:Start /B "" "C:\NIST08\AMDIS32\AMDIS_32.EXE",你说这样行不通,但你测试过吗?这是有效的。此外,您可以简单地写下“C:\NIST08\AMDIS32\AMDIS_32.EXE”,无需使用START和双引号。 - ElektroStudios
是的,抱歉——它确实运行了!我只是不小心将批处理文件保存为UNICODE而不是ANSI编码,因为从另一个程序复制和粘贴的结果...对于所有的麻烦,我表示歉意,但现在它可以工作了!! - Tom Wenseleers
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接