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

[文件操作] [已解决]批处理如何复制文件夹1到文件夹2?

[复制链接]
发表于 2024-4-19 11:30:54 | 显示全部楼层
本帖最后由 77七 于 2024-4-19 11:45 编辑

回复 13# g495326


  
  1. @echo off
  2. pushd "%~1"
  3. call :1 "%cd%"
  4. pause & exit

  5.         :1
  6.         robocopy . "e:\2\%~nx1" /e
  7.         exit /b
复制代码
  1. @echo off
  2. call :1 "%~1."
  3. pause & exit

  4.         :1
  5.         pushd "%~1"
  6.         robocopy . "e:\2\%~nx1" /e
  7.         popd
  8.         exit /b
复制代码

评分

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

查看全部评分

 楼主| 发表于 2024-4-19 11:53:10 | 显示全部楼层
回复 16# 77七


    好思路,修改当前工作目录来处理反斜杠
发表于 2024-4-19 14:44:38 | 显示全部楼层
由16楼%~1.引起的尝试
  1. @echo off
  2. rem 不考虑含有空格的路径
  3. rem 执行成功
  4. robocopy d:\1\ d:\2\1\ /e
  5. robocopy "d:\1\." "d:\2\1\." /e
  6. robocopy "d:\1\." "d:\2\1." /e
  7. robocopy "d:\1." "d:\2\1." /e

  8. rem 执行失败
  9. robocopy "d:\1" "d:\2\1" /e
  10. robocopy "d:\1" "d:\2\1" /e
  11. robocopy "d:\1" "d:\2\1\." /e
  12. pause
复制代码


以前一直以为 robocopy "a" "b" ,a、b末尾不能有\,经过尝试发现,以后可以直接忽略是否有\,只需要在末尾加一个.号解决。
发表于 2024-4-19 17:04:24 | 显示全部楼层
回复 18# 77七


    不是末尾不能有\  , 而是robocopy是外部程序 , 参数解析中的\有转义作用 ,换成两个\就行了
例如 robocopy "a\" "b" 中的\"是转义" , robocopy接受到的源路径参数是 a" b, 不合法的 , 而且也没有目标路径参数

评分

参与人数 1技术 +1 收起 理由
77七 + 1 感谢分享

查看全部评分

发表于 2024-4-19 18:00:41 | 显示全部楼层
回复 19# Five66



  1.   开始时间: 2024年4月19日 17:45:11
  2.         源: d:\1" d:\2\1 \e\
  3.       目标-
复制代码

谢谢大佬指点!观察报告,确实如此。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 03:27 , Processed in 0.017929 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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