高斯Windows下批量执行与DOS批处理应用精要.pdfVIP

  • 0
  • 0
  • 约4.67千字
  • 约 9页
  • 2026-02-04 发布于北京
  • 举报

高斯Windows下批量执行与DOS批处理应用精要.pdf

思想家公社的门口一量化·分子模拟·二次元

此blog全部文章索引:

。计算化学公坛:

。思想家公社(讨论计算化学为主,加入

需注明研究方向)。Sobereva的硬件资料库:

[]从windows下的批量执行谈dos批处

理文件(updated)

2008-12-2200:54

从windows下的批量执行谈DOS批处理文件

文/Sobereva

这是个老生常谈的问题,但通过dos批处理文件,可以实现很多方便的功能,想在

这里多说一下。

先从最简单的解决方法说,网上老是有人问,我以前也回答过多次。windows下高

斯批量执行有三种方法

1多个输入文件写入一个列表中,统一执行:创建.bcf文件,每一行都是C:.gjf,

b1.out这样。没用的行开头写!注释掉。用gaussian打开此文件后,蹦出来的窗口

先exit,然后点三角箭头开始运行。也可以用gaussian的Utilities-editbatchlist来

编辑批处理任务列表,可保存成.bcf。这个方法一个著名的问题是其中一个任务出

错,整个批处理就会断掉。其实上可以在G03W界面的file-preference-Process里面

设定来解决,将默认的”EndBatchRunonError”去掉,则运行中某任务出错将继续

执行下面的任务。“PromptMessage”如果去掉的话,批量运行过程中将不再出现任

何框,例如是否覆盖以前输出文件之类将不再提示,适合无人看管的情况下批

量执行。

2多个工作写入一个文件中,统一执行:写一个输入文件,里面用例如–Link1–隔开。

实际就是那个additionstep方法创建的。这种方式适合多个任务有明显相关性的时

候,将它们和在一起。

3用简单批处理文件完成多个任务

首先在系统-高级-环境变量里,在系统变量的PATH里面把g03的路径添加到里面,

再新增GAUSS_EXEDIR环境变量也设定为g03的所在路径。这样任何目录下都可以

运行g03命令了

比如在gaussian03W文件夹里面建立一个批处理文件k.bat

如果要自动计算d:\2.gjf和d:\3.gjf两个文件,然后将结果生成到e:,分别叫2p.out

和3p.out,那么bat文件里就写:

g03d:\2e:\2p

g03d:\3e:\3p

然后运行k.bat就可以自动计算了,只是看不到运行过程。注意别写后缀名,.gjf

和.out不用写,自动默认.gjf和生成.out。如果不写输出文件的路径,就默认

成生成和gjf同文件名的out文件在原gjf文件夹里(我现在用的E01里面写清楚输

入和输出文件名的扩展名也可以运行,比如g031.gjf1.out)。

使用这种方法,若某个.gjf运行失败,将自动继续运行接下来的.gjf,不会因此出错

停住。

以上是最一般的方法,但是有时候需要运用类似linux的shellscript来实现一些高

级功能,比如执行当前文件夹所有.gjf。

最简单的方法是编写一个批处理文件k.bat,内容是:

for/f%%iin(’dir*.gjf/b’)dog03%%~ni%%~ni

然后输入k来执行,当前目录下所有.gjf都被运行,输出的.out文件文件名与.gjf相

同。

for…in…do就是循环,/f指的是将%%i依次赋值为in后面()里面的内容,括号里

面可以是一个文件,也可以使一条指令,如果是指令,需用’括起来。

dir/b指的是只显示文件名(包括扩展名),不显示文件的其它信息

%%i就是循环过程中的变量,在循环中被赋值为一个个.gjf文件。前面提到了g03

后面输入输出文件不要加扩展名,%ni是将%%i的.gjf后缀去掉的结果。比如%i是c60.gjf,%~ni就是

c60。

运用batchscript,还可以实现更高级的功能,比如想输出每个文件运行的结果,以

及运行结束的时间,可以这么写批处理文件:

@echooff

setlocalenabledelayedexpansion

for/f%%iin

文档评论(0)

1亿VIP精品文档

相关文档