找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16717|回复: 2

[文本处理] 批处理怎样修改多个txt(ctl)文件中包含的路径?

[复制链接]
发表于 2010-11-18 17:00:07 | 显示全部楼层 |阅读模式
文件名为:1_2006080501TBB_58.ctl
                  1_2006080502TBB_58.ctl
                  1_2006080503TBB_58.ctl
                             ....
                     依次类推
ctl文件和txt文件一样,可以用文本编辑器打开


文件内容:
DSET E:\max_computation\-52mask_fullarea2006080501TBB.dat
UNDEF -.9990E+34
options template
XDEF   481 LINEAR  136.317   0.050

希望将这个文件的第一行改为:
DSET E:\max_computation\mask_fullarea.dat\-54mask_fullarea2006080515TBB.dat
后面的不需要改动

注意:这里的52同时需要改为54

我实在写不出来,忘高手指教
发表于 2010-11-18 20:22:51 | 显示全部楼层
  1. @echo off&Setlocal Enabledelayedexpansion
  2. rem 假如这样的文件有100个
  3. for /l %%a in (1 1 100) do (
  4.     call :out %%a
  5. )
  6. pause
  7. :out
  8. set n=0
  9. for /f "delims=" %%i in (1_200608050%1TBB_58.ctl) do (
  10.        set /a n+=1
  11.        set v%1_!n!=%%i
  12. )
  13. set "v%1_1=DSET E:\max_computation\mask_fullarea.dat\-54mask_fullarea2006080515TBB.dat"
  14. set m=1
  15. for /f "delims=" %%j in (1_200608050%1TBB_58.ctl) do (
  16.      if !m! equ 1 (cd.>1_200608050%1TBB_58.ctl)
  17.      call echo %%v%1_!m!%% >>1_200608050%1TBB_58.ctl
  18.      set /a m+=1
  19. )
  20. goto :eof
复制代码
发表于 2010-11-19 11:09:00 | 显示全部楼层
把批处理放同一目录,并且新建个文件夹1
  1. @echo off
  2. setlocal enabledelayexpansion
  3. for /f "tokens=1,2,3 delims=_" %%i in ('dir/b *.ctl') do (
  4. for /f "delims=" %%a in (%%i_%%j_%%k) do (
  5. set/a n+=1
  6. if !n! equ 1 (echo DSET E:\max_computation\mask_fullarea.dat\-54mask_fullarea%%j.dat>>"%cd%\1\%%i_%%j_%%k") else echo %%a>>"%cd%\1\%%i_%%j_%%k"))
  7. pause
复制代码

[ 本帖最后由 leap 于 2010-11-19 11:26 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:44 , Processed in 0.017934 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表