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

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

请大神在我的源文件里帮忙改改
已经实现的功能:
点击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元作为感谢
2

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 4
    • pcl_test: 发帖前先使用论坛搜索PB -2

mark

学习学习。

TOP

回复 4# aa77dd@163.com


    同样感谢你!!

TOP

虽然已结帖, 与其删掉, 不如发出来吧

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
复制代码

TOP

回复 2# pcl_test


    效率太高了,万分感谢,来领赏吧,有效

TOP

本帖最后由 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

评分人数

TOP

返回列表