[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何修改文本内容?

各位高手大家好 我现在有一个棘手的批处理问题先具体说明下希望大家能帮助下我:

现在有一个总文件夹(名字暂且叫123吧)里面有50个子文件夹(名字各不一样)和一个名为“cp.gs”文本文档,每个子文件夹下面又有一个“xxxx.ctl”的文本文档(每个子文件夹下的这个ctl名字不一样,比如第一个叫chen,第二个可能就是叫chenp。。。)。chen.ctl里的内容为:
dset d:\chenp\fnl_2010%m2%d2_%h2_00_c
options template   
index d:\chenp\1.idx
undef 9.999E+20
title d:\chenp\fnl_2010%m2%d2_%h2_00_c
*  produced by grib2ctl v0.9.12.5p39c
dtype grib 3
options yrev
ydef 181 linear -90.000000 1
xdef 360 linear 0.000000 1.000000
tdef 6 linear 12Z05May2010 6hr
。。。。
。。。。
-------------------------------------------------------------------------------------------------
cp.gs里内容为:
'reinit'
'open d:\chenp\xxxx.ctl'
'set parea 1 10 1 7.5'
'set xlopts 1 4 0.1'
'set ylopts 1 4 0.1'
i=1
while(i<=6)
。。。。
。。。。
'printim d:\chenp\700h_'time'.png white'
--------------------------------------------------------------------------------------------------------------------

我想通过批处理实现:
1:将gs中的'open d:\chenp\chen.ctl'的xxxx.ctl名字改为每个子文件夹下的ctl的名字;
2:将gs中while(i<=6)中6这个数字改为ctl中tdef 6 linear 12Z05May2010 6hr中tdef 后面这个数字,这个数字不一定是6
3:将'printim d:\chenp\700h_'time'.png  white'中的路径改为子文件夹的路径
4:上述改完保存改好的xxx.gs后再运行总文件夹下的这个gs,用以下语句:grads -blc "d:\总文件夹\xxx.gs"
以上为一个循环的内容,一共循环50次,注意:每个子文件夹的文件名及其里面的ctl的文件名都不一样。
恳请给位高手帮忙。谢谢啦。

有50个文件夹 但是只有一个gs,都在一个总的文件夹下面 每次循环只修改gs  运行

TOP

回复 2# terse

有50个文件夹 但是只有一个gs,都在一个总的文件夹下面 每次循环只修改gs  运行

TOP

回复 5# cjiabing


    好的

TOP

回复 7# cjiabing

cjiabing:您好
我将原来的要求内容改了下 麻烦您看下。
将'printim d:\chenp\700h_'time'.png  white'中的路径改为子文件夹的文件名----这个我写错了应该是改为当前这个子文件夹的路劲。
上述改完保存改好的xxx.gs后再运行总文件夹下的这个gs,用以下语句:grads -blc "d:\总文件夹\xxx.gs"---这个我不知道将它加再循环的那个部分 因为没一次修改后的gs都要运行一遍

以上为一个循环的内容,一共循环50次,注意:每个子文件夹的文件名及其里面的ctl的文件名都不一样。-----一共有50个子文件夹和50个ctl,每个文件夹下一个ctl,实际上'open d:\chenp\cccc.ctl'的cccc.ctl‘这个是读取每个子文件夹下的ctl。

TOP

批处理修改文本内容--在线等

本帖最后由 cpp 于 2012-3-18 19:54 编辑

各位高手大家好 我现在有一个棘手的批处理问题先具体说明下希望大家能帮助下我:

现在有一个总文件夹(暂且命名为123)里面有50个子文件夹和一个名为“xxx.gs”文本文档,每个子文件夹下面又有一个名为“xxxx.ctl”的文本文档。
xxxx.ctl里的内容为:
dset d:\chenp\fnl_2010%m2%d2_%h2_00_c
options template   
index d:\chenp\1.idx
undef 9.999E+20
title d:\chenp\fnl_2010%m2%d2_%h2_00_c
*  produced by grib2ctl v0.9.12.5p39c
dtype grib 3
options yrev
ydef 181 linear -90.000000 1
xdef 360 linear 0.000000 1.000000
tdef 6 linear 12Z05May2010 6hr
。。。。
。。。。
-------------------------------------------------------------------------------------------------
xxx.gs里内容为:
'reinit'
'open d:\chenp\cccc.ctl'

'set parea 1 10 1 7.5'
'set xlopts 1 4 0.1'
'set ylopts 1 4 0.1'
i=1
while(i<=6)
。。。。
。。。。
'printim d:\chenp\700h_'time'.png white'
--------------------------------------------------------------------------------------------------------------------

我想通过批处理实现:
1:将gs中的'open d:\chenp\cccc.ctl'的cccc.ctl名字改为每个子文件夹下的xxxx.ctl的名字; open实际上是读取某个子文件夹下的ctl文件,一共有50个文件夹就有50个ctl,每个的名字都不一样。
2:将gs中while(i<=6)中6这个数字改为ctl中tdef 6 linear 12Z05May2010 6hr中tdef 后面这个数字,这个数字不一定是6
3:将'printim d:\chenp\700h_'time'.png  white'中的路径改为子文件夹的路径
4:上述改完保存改好的xxx.gs后再运行总文件夹下的这个gs,用以下语句:grads -blc "d:\总文件夹\xxx.gs"
以上为一个循环的内容,一共循环50次,每个文件夹的名字以及ctl的名字都不一样。
恳请给位高手帮忙。谢谢啦。

TOP

回复 2# cjiabing


    呵呵 不好意思啊 多谢你了 怎么给您分数呢

TOP

回复 3# powerbat


    呵呵 谢谢您慷慨帮助 感谢您

TOP

回复 2# cjiabing


    我24小时评分收到限制了 回头我把分数给您补上 嘿嘿

TOP

回复 3# powerbat


    对了 想问下您 你的代码在哪里可以进行运行 不好意思我没学过javascript

TOP

回复 8# powerbat


    呵呵 好的 多谢啦

TOP

回复 22# cjiabing


    嘿嘿 以后不懂的还是多向你请教了

TOP

回复 21# terse


    多谢啦,评分还是不能评 回头都给补上

TOP

回复 10# cjiabing


    你好 我运行了你给我的代码 其他都没问题 但是有个问题就是if "%%i"=="'open D:\2010\1\1.ctl'" set var=!var:\1.ctl=\%%~na.ctl!
这个出来后每次新的gs都是读取的'open D:\2010\1下的ctl 比如'open D:\2010\1\1.ctl,下一个就是'open D:\2010\1\2.ctl,由于我的2.ctl是放在2(暂时取名为2)这个子文件夹下的,
我试着修改但是没成功。不知道怎么修改呢?

TOP

回复 25# powerbat


    哦 什么后果呢

TOP

返回列表