|
|
发表于 2012-3-20 22:27:15
|
显示全部楼层
回复 33# cpp
不好意思,修正了一下,没有东西测试容易产生错误!~
-
- @echo off&setlocal enabledelayedexpansion
- ::把xxx.gs、grads和本批处理都放在同一目录下运行。
- ::xxx.gs是标准,你不能随意修改,特别是d:\chenp这个路径。
- for /r %%a in (*.ctl) do (
- for /f "usebackq tokens=1,2" %%x in ("%%~a") do if /i "%%x"=="tdef" set "str=%%y"
- for /f "tokens=*" %%i in (xxx.gs) do (
- set "var=%%i"
- if "%%i"=="'open d:\chenp\cccc.ctl'" set var=!var:d:\chenp\cccc.ctl=d:\chenp\%%~na.ctl!
- if "%%i"=="while(i<=6)" set "var=while(i<=!str!)"
- for /d %%l in ("%%~dpa") do set "var=!var:d:\chenp\700h_=%%~fl700h_!"
- echo;!var!
- )>>"%~dp0new_xxx.gs"
- grads -blc "%~dp0new_xxx.gs"
- del /f "%~dp0new_xxx.gs">nul 2>nul
- )
- pause
复制代码
强调一下:你要把所有文件盒程序都放在同一目录下使用。同时,修改xxx.gs文件需要修改本代码。
有两个地方可能出点问题了:一个是替换文件名cccc.ctl的,一个是%~dp0new_xxx.gs的,现在一同修改过来了,你使用这个就可以了。
如果你的grads放在其他地方,你可以用路径来表示它,比如:"D:\Program Files\GRADS\grads.exe"——路径有空格需要使用双引号。
还有其他问题请一并反馈到一楼。 |
|