本人用某种软件做计算,软件是算完第一步,输出一个文件(例如beam.txt),再接着计算第二步,算完后输出第二个同名文件,接着计算第三步.......直到每一步算完。上一步的结果文件会被下一步计算同名结果文件覆盖(郁闷!),当所有步计算都完成后软件会自动退出
软件每一步的计算大概花几分钟到几十分钟不等,但是输出结果的时间最多也就几十秒(此时文件虽然已经创建,但是改不了文件名的)。输出完结果后再进行下一步的计算,。再说一遍,计算过程中不输出文件。一共数十步。
想对该软件实时监控,以修改文件名
因为批处理简洁直观,又方便修改参数
所以想到了批处理
具体要以下几个功能
第一步:每隔一定时间(例如20秒)检测软件进程是否存在(例如ansys.exe,完整的进程名,最好不是包含这个字段的进程名),如果存在执行第二步,如果不存在则延时(例如50秒)关机
第二步:检测指定路径下文件是否存在(例如D:\result\beam.txt),如果存在则将该文件改名为beam*.txt(符号“*”为第几次检测到,也就是第几个文件,加在文件名最后),这样文件就不会被覆盖了^-^。(或者另外一个txt文件中储存了文件名,文件名用回车符分隔,再从里面导入文件名),然后回到第一步。
问题是,可能碰巧ansys.exe这个程序还没输出完beam.txt,从而无法修改文件名,如何忽略不能修改的错误,延时再修改???(或者直接判断能否修改文件名,能则修改,不能则延时修改),修改成功后回到第一步。
还有一个小问题,就是如何保证最后一个结果文件也能被改名,因为最后一步算完后,输出结果,然后程序自动退出,然后检测程序进程不存在就给我关机了!!没有改名,哈哈哈
第一步的代码自己在论坛上找到一个,如下:
@echo off
tasklist|findstr /i "ansys.exe" ||shutdown -s -t 50
ping 127.1 -n 20 >nul 2>nul
call %0
美中不足的是,只是能检测到包含ansys字段的进程名
第二步实在不会了,本人对批处理只知道皮毛,希望好心人能相助!谢谢!!
谢谢版主关注!
[ Last edited by yinguangrong on 2008-12-25 at 01:12 ]
软件每一步的计算大概花几分钟到几十分钟不等,但是输出结果的时间最多也就几十秒(此时文件虽然已经创建,但是改不了文件名的)。输出完结果后再进行下一步的计算,。再说一遍,计算过程中不输出文件。一共数十步。
想对该软件实时监控,以修改文件名
因为批处理简洁直观,又方便修改参数
所以想到了批处理具体要以下几个功能
第一步:每隔一定时间(例如20秒)检测软件进程是否存在(例如ansys.exe,完整的进程名,最好不是包含这个字段的进程名),如果存在执行第二步,如果不存在则延时(例如50秒)关机
第二步:检测指定路径下文件是否存在(例如D:\result\beam.txt),如果存在则将该文件改名为beam*.txt(符号“*”为第几次检测到,也就是第几个文件,加在文件名最后),这样文件就不会被覆盖了^-^。(或者另外一个txt文件中储存了文件名,文件名用回车符分隔,再从里面导入文件名),然后回到第一步。
问题是,可能碰巧ansys.exe这个程序还没输出完beam.txt,从而无法修改文件名,如何忽略不能修改的错误,延时再修改???(或者直接判断能否修改文件名,能则修改,不能则延时修改),修改成功后回到第一步。
还有一个小问题,就是如何保证最后一个结果文件也能被改名,因为最后一步算完后,输出结果,然后程序自动退出,然后检测程序进程不存在就给我关机了!!没有改名,哈哈哈
第一步的代码自己在论坛上找到一个,如下:
@echo off
tasklist|findstr /i "ansys.exe" ||shutdown -s -t 50
ping 127.1 -n 20 >nul 2>nul
call %0
美中不足的是,只是能检测到包含ansys字段的进程名
第二步实在不会了,本人对批处理只知道皮毛,希望好心人能相助!谢谢!!
谢谢版主关注!
[ Last edited by yinguangrong on 2008-12-25 at 01:12 ]
