[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
是不是 有50个xxx.gs
如果是 那就是要修改子文件夹里的 xxx.gs 吗?

TOP

本帖最后由 terse 于 2012-3-20 22:59 编辑

按一楼新要求 修改 不保证代码的通用行 运行代码前 请先备份总文件夹下的所有文件
  1. @echo off&setlocal enabledelayedexpansion
  2. set "ph=d:\123\"
  3. cd /d "%ph%"
  4. for /f "tokens=*" %%i in ('dir /s /b /a-d "%ph%*.ctl"') do (
  5.     for /f "usebackq tokens=1,2" %%j in ("%%~i") do if /i "%%j"=="tdef" set "N=%%k"
  6.     (for /f "usebackq tokens=*" %%j in ("cp.gs") do (
  7.         set "Str=%%j"
  8.         if "%%~xj" neq ".ctl'" (
  9.            if "!str:~,9!" neq "while(i<=" (
  10.               if "!str:~,9!" equ "'printim " (echo 'printim %%~dpi%%~nxj)else echo %%j
  11.            ) else echo while^(i^<=!N!^)
  12.         ) else echo 'open %%i'
  13.     ))>"~temp.mp"
  14.     move "~temp.mp" "%ph%cp.gs"
  15.     grads -blc "%ph%cp.gs"
  16. )
  17. pause
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 28# cjiabing
看了下版主代码 觉得下面这句有疑惑
  1. if "%%i"=="'open d:\chenp\cccc.ctl'" set var=!var:\cccc.ctl=\%%~na.ctl!——这个是修改文件名的。
复制代码
你给这里的条件是 if "%%i"=="'open d:\chenp\cccc.ctl'"  但实际不定的  也就是并不一定是 “d:\chenp\cccc.ctl”

TOP

回复 31# cpp
假设总文件夹在 D:\123\   (执行时自行修改)
另grads 程序不在D:\123\ 下  那么应该给出路径
前面代码 一并修改
  1. @echo off&setlocal enabledelayedexpansion
  2. set "ph=d:\123\"
  3. cd /d "%ph%"
  4. for /f "tokens=*" %%i in ('dir /s /b /a-d "%ph%*.ctl"') do (
  5.     for /f "usebackq tokens=1,2" %%j in ("%%~i") do if /i "%%j"=="tdef" set "N=%%k"
  6.     (for /f "usebackq tokens=*" %%j in ("cp.gs") do (
  7.         set "Str=%%j"
  8.         if "%%~xj" neq ".ctl'" (
  9.            if "!str:~,9!" neq "while(i<=" (
  10.               if "!str:~,9!" equ "'printim " (echo 'printim %%~dpi%%~nxj)else echo %%j
  11.            ) else echo while^(i^<=!N!^)
  12.         ) else echo 'open %%i'
  13.     ))>"~temp.mp"
  14.     move "~temp.mp" "%ph%cp.gs"
  15.     grads -blc "%ph%cp.gs"
  16. )
  17. pause
复制代码

TOP

本帖最后由 terse 于 2012-3-21 15:13 编辑

回复 39# cpp
不确定你那边情况
我这里测试了一下 循环50 主文件夹下CP.GS内容 更改50次
也没办法获得你那边更多详情 我给出测试前后文件对比 你看下  是否有文件路径问题或其他问题
  1. 'reinit'
  2. 'open d:\123\hcflmup9\cflm.ctl'
  3. 'set parea 1 10 1 7.5'
  4. 'set xlopts 1 4 0.1'
  5. 'set ylopts 1 4 0.1'
  6. i=1
  7. while(i<=5)
  8. 'printim d:\123\hcflmup9\700h_'time'.png white'
复制代码
运行一次后 修改如下 循环下去  每次修改的
'reinit'
'open d:\123\76lk9bi0\6lk9.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:\123\76lk9bi0\700h_'time'.png white'
1

评分人数

    • cpp: 多谢技术 + 1

TOP

返回列表