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

[文本处理] [已解决]批处理如何实现复制指定文本文件到多个文件夹并修改文本里的指定字符串

[复制链接]
发表于 2016-10-24 12:52:06 | 显示全部楼层 |阅读模式
请大神在我的源文件里帮忙改改
已经实现的功能:
点击change.bat会以a文件夹为模板复制1-9个文件夹,同时每个文件夹里面都包含setup.bat
想要实现的功能:
1.生成的文件夹是0001-1000。(我的set /a orderNumMin=1   set /a orderNumMax=9写0001到1000无效,不是4位的,我要4位)这个要求不是必须,可有可无
2.0001  0002  0003 0004.....1000  这1千个文件夹,里面虽然都已经包含setup.bat,但是我需要0001文件夹里的setup.bat中的6776037-0000替换为6776037-0001
0002文件夹里的setup.bat中的6776037-0000替换为6776037-0002
0003文件夹里的setup.bat中的6776037-0000替换为6776037-0003
1000文件夹里的setup.bat中的6776037-0000替换为6776037-1000
以此类推,共1000份


我目前已经写了部分,在附件里,各位大神拜托修改了,满足我要求的请给zenkifox@126.com发邮件领赏钱人民币20元作为感谢

评分

参与人数 2PB +2 收起 理由
Batcher + 4 感谢给帖子标题标注[已解决]字样
pcl_test -2 发帖前先使用论坛搜索

查看全部评分

发表于 2016-10-24 13:11:56 | 显示全部楼层
本帖最后由 pcl_test 于 2016-10-24 13:14 编辑
  1. set /a orderNumMin=10001
  2. set /a orderNumMax=11000
  3. SETLOCAL ENABLEDELAYEDEXPANSION
  4. for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
  5.     set n=%%k
  6.     md !n:~1!
  7.     (
  8.         echo;cd "%%~dp0"
  9.         echo;rem此处修改当前机器编号
  10.         echo;set LOCAL_MACHINE=6776037-!n:~1!
  11.         more +15 "%~f0"
  12.     )>"!n:~1!\setup.bat"
  13. )
  14. pause&exit
  15. ::
  16. rem此处修改后面的数字,默认是10,最大是99
  17. set /a orderNumMax=99
  18. set /a orderNumMin=1
  19. SETLOCAL ENABLEDELAYEDEXPANSION
  20. for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
  21. md web%%k
  22. set TEM_ORDER=00%%k
  23. set TEM_ORDER2=!TEM_ORDER:~-2,2!
  24. copy moban\WebIE.exe web%%k\WebIE%%k.exe
  25. copy moban\userconf.ini web%%k\userconf.ini
  26. copy moban\conf.exe web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  27. call web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  28. del web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  29. )
  30. SETLOCAL DISABLEDELAYEDEXPANSION
  31. %~d0
  32. cd %~dp0
  33. exit
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-10-24 13:35:21 | 显示全部楼层
回复 2# pcl_test


    效率太高了,万分感谢,来领赏吧,有效
发表于 2016-10-24 13:52:07 | 显示全部楼层
虽然已结帖, 与其删掉, 不如发出来吧

MAKE.CMD
不同于 2 楼 的 more 输出方式, 这里采用 copy 文件拼接方式, setup_main.bat 是所有目标文件的后面的公共部分, make 只 echo 输出首行机器号
  1. @echo off
  2. set /a orderNumMin=10001
  3. set /a orderNumMax=11000
  4. SETLOCAL ENABLEDELAYEDEXPANSION
  5. for /L %%k in (%orderNumMin% 1 %orderNumMax%) do (

  6.         set "dirName=%%k"
  7.         set "dirName=!dirName:~1!"
  8.         title !dirName! processing...
  9.         2>nul md "!dirName!"
  10.         >"!dirName!\setup.bat" (echo;set "LOCAL_MACHINE=6776037-!dirName!")
  11.         >nul copy /y "!dirName!\setup.bat" + "a\setup_main.bat" "!dirName!\setup.bat"
  12. )
  13. SETLOCAL DISABLEDELAYEDEXPANSION

  14. cd /d "%~dp0"
  15. pause
  16. exit
复制代码
setup_main.bat  放在 a 目录中

  1. cd /d "%~dp0"


  2. rem 此处修改后面的数字,默认是10,最大是99
  3. set /a orderNumMax=99







  4. set /a orderNumMin=1
  5. SETLOCAL ENABLEDELAYEDEXPANSION
  6. for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
  7. md web%%k
  8. set TEM_ORDER=00%%k
  9. set TEM_ORDER2=!TEM_ORDER:~-2,2!
  10. copy moban\WebIE.exe web%%k\WebIE%%k.exe
  11. copy moban\userconf.ini web%%k\userconf.ini
  12. copy moban\conf.exe web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  13. call web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  14. del web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
  15. )
  16. SETLOCAL DISABLEDELAYEDEXPANSION
  17. %~d0
  18. cd %~dp0

  19. exit
复制代码
 楼主| 发表于 2016-10-24 14:13:05 | 显示全部楼层
回复 4# aa77dd@163.com


    同样感谢你!!
发表于 2016-10-24 15:40:47 | 显示全部楼层
mark

学习学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 08:58 , Processed in 0.019810 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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