标题: [文件操作] [已解决]批处理如何多次运行分别复制不同文件夹的文件到指定目录? [打印本页]
作者: forevergt 时间: 2015-4-7 17:19 标题: [已解决]批处理如何多次运行分别复制不同文件夹的文件到指定目录?
本帖最后由 pcl_test 于 2016-1-10 00:25 编辑
现有文件夹a、b、c、x,每个文件夹都有1234.txt文本文档,如何用批处理实现,
运行1次将a文件夹中的1234.txt文档覆盖到x文件夹中的1234.txt,
运行2次将b文件夹中的1234.txt文档覆盖到x文件夹中的1234.txt,
运行3次将c文件夹中的1234.txt文档覆盖到x文件夹中的1234.txt,
运行4次将a文件夹中的1234.txt文档覆盖到x文件夹中的1234.txt,
运行5次将b文件夹中的1234.txt文档覆盖到x文件夹中的1234.txt,
……………………
如此循环,求具体代码,感激!
作者: forevergt 时间: 2015-4-7 17:25
本帖最后由 forevergt 于 2015-4-7 17:46 编辑
我先说说我的思路,先创建一个log文件,文件内容为一个数字,初始为1,然后用下面这段代码:- @echo off
- for /f "delims=" %%a in (123.log) do set b=%%a
- set i=%b%
- echo %i%
- pause
- set /a i+=1
- echo %i%
- pause
- echo %i%>123.log
- pause
- findstr /c:"1" 123.log && goto 1
- findstr /c:"2" 123.log && goto 2
- findstr /c:"3" 123.log && goto 3
- :1
- copy a\1234.txt x\1234.txt
- goto :eof
- :2
- copy b\1234.txt x\1234.txt
- goto :eof
- :3
- copy c\1234.txt x\1234.txt
- goto :eof
复制代码
但是运行到echo %i%>123.log这句代码后,123.log内容就被清空了,不知有什么错误的地方,请指正,谢谢!
作者: pcl_test 时间: 2015-4-7 17:49
本帖最后由 pcl_test 于 2015-4-7 17:57 编辑
- @echo off
- if not exist "run.log" >"run.log" echo,0
- ::set /p b=<"run.log"
- for /f "delims=" %%a in ('type "run.log"') do set b=%%a
- set /a b+=1
- >"run.log" echo,%b%
- if %b% == 1 (echo copy "a\1234.txt" "x\1234.txt" /y
- ) else if %b% == 2 (echo copy "b\1234.txt" "x\1234.txt" /y
- ) else if %b% == 3 (echo copy "c\1234.txt" "x\1234.txt" /y
- ) else if %b% == 4 (echo copy "d\1234.txt" "x\1234.txt" /y)
- pause
复制代码
作者: pcl_test 时间: 2015-4-7 17:52
本帖最后由 pcl_test 于 2015-4-7 17:53 编辑
回复 2# forevergt
echo %i%>123.log
数字被当成句柄了也就是echo 1>123.log、echo 2>123.log……所以没有输出,正确语法echo %i% >123.log或是>123.log echo %i%
作者: DAIC 时间: 2015-4-7 20:16
回复 2# forevergt 复制代码
把重定向放到前面就行了
作者: pcl_test 时间: 2015-4-8 13:33
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |