我正在尝试创建一个批处理文件,以完成三个单独的任务:1)运行Abaqus作业,2)从.odb文件中提取数据,以及3)创建图形。
我能够运行第1项和第2项,但是无法使第3项在同一批处理文件中运行。当我单独运行它时,它可以工作。如果有人有主意,那就太好了!谢谢!
:: 1) Run the Abaqus job
call Abaqus double job=Bond_Test_Script cpus=1 double interactive ask_delete=OFF
echo on
:: 2) Run the python data extract
Abaqus python -c "import BpT; BpT.data_extract('Bond_Test_Script')"
echo on
:: 3) Plot the data
call "C:\Users\anaconda3\condabin\activate.bat"
"C:\Users\anaconda3\python.exe" "F:\Abaqus Working Directory\BpT_Plot.py"
pause
'''
答案 0 :(得分:0)
如果未执行第3步,那么几乎可以肯定Abaqus
本身就是批处理脚本。
从另一个批处理脚本运行一个批处理脚本时,除非您像在步骤1中那样使用call
变体,否则它不会返回到原始脚本。
您可以使用以下两个脚本来查看此脚本,首先是first.cmd
:
@echo off
echo first a
call second
echo first b
second
echo first c
然后是second.cmd
:
echo second
运行first
将永远不会到达回显first c
的命令,因为没有second
的{{1}}的执行将不会返回:
call
解决方案是将步骤2更改为(添加C:\Users\PaxDiablo> first
first a
second
first b
second
):
call
顺便说一句,我也尽量避免使用call Abaqus python -c "import BpT; BpT.data_extract('Bond_Test_Script')"
作为注释标记(坚持使用::
)。这是一个错误,实际上是一个标签语句,就像rem
一样,但是使用了无效的名称,这在括号,循环和:some_label
语句等更复杂的情况下通常效果不佳。