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


    恩 其实我说了每个子文件夹下又有一个ctl的 ,不过没事我把这些ctl统一放到一个文件夹下拉,多谢你的解释噢

TOP

回复 21# terse


    您好 我运行您给的代码后 没有出图 也没有出现新的gs

TOP

回复 28# cjiabing


    cjiabing :不好意思 又打扰你了
我在运行你的代码时出现不能循环的问题,运行了第一个grads -blc "%~dp1new_cp.gs"
后就完全停止了,这是为什么呢?

TOP

回复 22# cjiabing


    我发现一个问题 我早上再单位的电脑运行代码的时候是可以该ctl名字 并且是能够循环的,但是
不能运行grads这句说是找不到可行文件,可是到了晚上我在自己的笔记本电脑上运行的时候,grads这
句能够运行,但是循环只有一次。不知道这个怎么解释呢。

TOP

回复 34# cjiabing


    我将代码修改成这样
@echo off&setlocal enabledelayedexpansion
::把xxx.gs、grads和本批处理都放在同一目录下运行。
::cp.gs是标准,你不能随意修改,特别是d:\2010\1\这个路径。
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 (cp.gs) do (
        set "var=%%i"
        if "%%i"=="'open D:\2010\1\1.ctl'" set var=!var:\1.ctl=\%%~na.ctl!
        if "%%i"=="while(i<=6)" set "var=while(i<=!str!)"
        for /d  %%l in ("%%~dpa") do  set "var=!var:\2010\1\700h_=%%~fl700h_!"
        echo;!var!
    )>>"%~dp0new_cp.gs"
"D:\Program Files\OpenGrADS\Contents\Cygwin\Versions\2.0.a9.oga.1\i686\grads.exe" -blc "%~dp0new_cp.gs"
    del /f "%~dp0new_cp.gs">nul 2>nul
)
pause
由于if "%%i"=="'open d:\chenp\cccc.ctl'" set var=!var:d:\chenp\cccc.ctl=d:\chenp\%%~na.ctl!出来的结果就是open D:\2010\1\D:\2010\1\1.ctl
最重要的一点就是还是没有改gs 1.ctl没有变为2.ctl 循环没有进行 只是运行了第一次
我将先试了三个ctl  都放到D:\2010\1\下了gs和本批处理在d:\2010\下
不知道这个是怎么回事呢 ?

TOP

回复 36# terse


    您好 你的代码我按照您说的要求改了后 还是没有进行循环,只是第一次出图了 后面没有出图 为什么呢?set "ph=d:\2010\"
只改了这个路劲以及grads的路径

TOP

回复 38# cjiabing


    给我你的QQ号 我加你

TOP

回复 38# cjiabing


    私下里给吧 发个私信什么的

TOP

返回列表