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

[文件操作] [已解决]批处理如何多次运行分别复制不同文件夹的文件到指定目录?

本帖最后由 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,
……………………
如此循环,求具体代码,感激!

问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

回复 2# forevergt
  1. >123.log echo %i%
复制代码
把重定向放到前面就行了

TOP

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

TOP

本帖最后由 pcl_test 于 2015-4-7 17:57 编辑
  1. @echo off
  2. if not exist "run.log" >"run.log" echo,0
  3. ::set /p b=<"run.log"
  4. for /f "delims=" %%a in ('type "run.log"') do set b=%%a
  5. set /a b+=1
  6. >"run.log" echo,%b%
  7. if %b% == 1 (echo copy "a\1234.txt" "x\1234.txt" /y
  8. ) else if %b% == 2 (echo copy "b\1234.txt" "x\1234.txt" /y
  9. ) else if %b% == 3 (echo copy "c\1234.txt" "x\1234.txt" /y
  10. ) else if %b% == 4 (echo copy "d\1234.txt" "x\1234.txt" /y)
  11. pause
复制代码

TOP

本帖最后由 forevergt 于 2015-4-7 17:46 编辑

我先说说我的思路,先创建一个log文件,文件内容为一个数字,初始为1,然后用下面这段代码:
  1. @echo off
  2. for /f "delims=" %%a in (123.log) do set b=%%a
  3. set i=%b%
  4. echo %i%
  5. pause
  6. set /a i+=1
  7. echo %i%
  8. pause
  9. echo %i%>123.log
  10. pause
  11. findstr /c:"1"  123.log && goto 1
  12. findstr /c:"2"  123.log && goto 2
  13. findstr /c:"3"  123.log && goto 3
  14. :1
  15. copy a\1234.txt x\1234.txt
  16. goto :eof
  17. :2
  18. copy b\1234.txt x\1234.txt
  19. goto :eof
  20. :3
  21. copy c\1234.txt x\1234.txt
  22. goto :eof
复制代码
但是运行到echo %i%>123.log这句代码后,123.log内容就被清空了,不知有什么错误的地方,请指正,谢谢!

TOP

返回列表