我需要帮助来通过批处理脚本自动处理y / n问题

时间:2013-10-09 07:21:27

标签: batch-file abaqus

当我跑步时

--- batch file jobs.bat --- 
call abaqus job=some_name interactive 
--- end of batch file jobs.bat --- 

可能会发生两件事:

  1. 如果这是我第一次开始工作,则不会进行任何查询。
  2. 但是,如果作业存在,我收到此消息:

    Old job exist. Overwrite? (y/n): 
    
  3. 我希望我的脚本始终以

    回复
     y
    

    我试过了

     /Q and echo n|call 
    
    没有运气。

3 个答案:

答案 0 :(得分:3)

将job_delete = OFF添加到作业执行命令的末尾:

abaqus job=some_name interactive ask_delete=OFF

答案 1 :(得分:2)

对于abaqus你真正应该做的事情而不是构建批处理文件是构建一个导入并运行代码的python执行脚本,Python API的文档在abaqus脚本手册中,但代码看起来像这样:

for filepath in list of filepaths:
     mdb.JobFromInputFile(name='filename', inputFileName='filepath',)
     mdb.jobs['filename'].submit()
     mdb.waitForCompletion()

然后使用命令

提交
  
    
      

abaqus python yourscript.py

    
  

这将覆盖你已经拥有的东西。如果你真的想得到想象,你可以使用python打开与你的工作目录中的运行相关联的* .dat或* .msg文件,并查看文本的最后一行,看看现有文件是否与成功运行相对应太。这也为您打开了python的世界,让您做的不仅仅是提交文件。

答案 2 :(得分:0)

在批处理文件中,在启动程序之前删除旧作业。