标题: [文本处理] [已解决]批处理如何实现复制指定文本文件到多个文件夹并修改文本里的指定字符串 [打印本页]
作者: zenkifox 时间: 2016-10-24 12:52 标题: [已解决]批处理如何实现复制指定文本文件到多个文件夹并修改文本里的指定字符串
请大神在我的源文件里帮忙改改
已经实现的功能:
点击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元作为感谢
作者: pcl_test 时间: 2016-10-24 13:11
本帖最后由 pcl_test 于 2016-10-24 13:14 编辑
- set /a orderNumMin=10001
- set /a orderNumMax=11000
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
- set n=%%k
- md !n:~1!
- (
- echo;cd "%%~dp0"
- echo;rem此处修改当前机器编号
- echo;set LOCAL_MACHINE=6776037-!n:~1!
- more +15 "%~f0"
- )>"!n:~1!\setup.bat"
- )
- pause&exit
- ::
- rem此处修改后面的数字,默认是10,最大是99
- set /a orderNumMax=99
- set /a orderNumMin=1
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
- md web%%k
- set TEM_ORDER=00%%k
- set TEM_ORDER2=!TEM_ORDER:~-2,2!
- copy moban\WebIE.exe web%%k\WebIE%%k.exe
- copy moban\userconf.ini web%%k\userconf.ini
- copy moban\conf.exe web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- call web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- del web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- )
- SETLOCAL DISABLEDELAYEDEXPANSION
- %~d0
- cd %~dp0
- exit
复制代码
作者: zenkifox 时间: 2016-10-24 13:35
回复 2# pcl_test
效率太高了,万分感谢,来领赏吧,有效
作者: aa77dd@163.com 时间: 2016-10-24 13:52
虽然已结帖, 与其删掉, 不如发出来吧
MAKE.CMD
不同于 2 楼 的 more 输出方式, 这里采用 copy 文件拼接方式, setup_main.bat 是所有目标文件的后面的公共部分, make 只 echo 输出首行机器号- @echo off
- set /a orderNumMin=10001
- set /a orderNumMax=11000
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /L %%k in (%orderNumMin% 1 %orderNumMax%) do (
-
- set "dirName=%%k"
- set "dirName=!dirName:~1!"
- title !dirName! processing...
- 2>nul md "!dirName!"
- >"!dirName!\setup.bat" (echo;set "LOCAL_MACHINE=6776037-!dirName!")
- >nul copy /y "!dirName!\setup.bat" + "a\setup_main.bat" "!dirName!\setup.bat"
- )
- SETLOCAL DISABLEDELAYEDEXPANSION
-
- cd /d "%~dp0"
- pause
- exit
复制代码
setup_main.bat 放在 a 目录中- cd /d "%~dp0"
-
-
- rem 此处修改后面的数字,默认是10,最大是99
- set /a orderNumMax=99
-
-
-
-
-
-
-
- set /a orderNumMin=1
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /l %%k in (%orderNumMin% 1 %orderNumMax%) do (
- md web%%k
- set TEM_ORDER=00%%k
- set TEM_ORDER2=!TEM_ORDER:~-2,2!
- copy moban\WebIE.exe web%%k\WebIE%%k.exe
- copy moban\userconf.ini web%%k\userconf.ini
- copy moban\conf.exe web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- call web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- del web%%k\conf_%LOCAL_MACHINE%!TEM_ORDER2!.exe
- )
- SETLOCAL DISABLEDELAYEDEXPANSION
- %~d0
- cd %~dp0
-
- exit
复制代码
作者: zenkifox 时间: 2016-10-24 14:13
回复 4# aa77dd@163.com
同样感谢你!!
作者: huyou96 时间: 2016-10-24 15:40
mark
学习学习。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |