Board logo

标题: [文件操作] 批处理命令xcopy不能复制空文件夹怎么回事? [打印本页]

作者: swanseabrian    时间: 2022-4-2 09:29     标题: 批处理命令xcopy不能复制空文件夹怎么回事?

  1. @echo on
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set  /a n=1000
  5. for /d %%a in (*) do (
  6. pushd %%a
  7. if exist "test2" (
  8. md "C:\Users\Administrator\Desktop\bat\20220331样本\新建文件夹 (2)\新建文件夹\2\%%a"
  9. xcopy /Y /S /q /e  test2 "C:\Users\Administrator\Desktop\bat\20220331样本\新建文件夹 (2)\新建文件夹\2\%%a"
  10. )
  11.    
  12.      
  13. popd
  14.       
复制代码
上面是代码,

我想复制test2这个空文件夹

可是复制不了,

我里面加个txt,只能复制txt

我看说加了参数 /e  可以复制空文件夹

这是啥情况

我有点蒙这里
谢谢
作者: qixiaobin0715    时间: 2022-4-2 09:39

基本上没用过xcopy,有些代码/s/e一块用,但是看帮助文档后,就有点迷茫了:一个是包括空目录,一个不包括空目录,连用的话到底是包括还是不包括空目录呢?
作者: ANSL    时间: 2022-4-2 09:41

回复 2# qixiaobin0715
你可以先向里面写入一个文件
再移动
移动后删除文件
作者: swanseabrian    时间: 2022-4-2 10:12

回复 3# ANSL


    加入一个,就只移动那个文件
文件夹还是不移,
现在我是建立文件夹,
复制的
不知道是啥情况
作者: qixiaobin0715    时间: 2022-4-2 10:51

本帖最后由 qixiaobin0715 于 2022-4-2 10:55 编辑

从帮助文档中来说,我想应当是这样的。
比如我有个文件夹test1 其路径为C:\Users\Administrator\Desktop\test1
目录结构:
  1. C:\USERS\ADMINISTRATOR\DESKTOP\TEST1
  2. │  a1.txt
  3. │  a2.txt
  4. ├─aaa
  5. │      a1.txt
  6. │      test.bat
  7. ├─abc
  8. │  │  a.txt
  9. │  │  a1.bat
  10. │  │
  11. │  ├─A
  12. │  └─B
  13. └─Newfiles
  14.         1.txt
  15.         2.txt
  16.         a.bat
复制代码
代码:
  1. xcopy C:\USERS\ADMINISTRATOR\DESKTOP\TEST1 D:\abc\ /e
复制代码
只会复制test1下的文件及文件夹到D:\abc中,并不包括文件夹test1本身。
作者: cutebe    时间: 2022-4-2 11:09

如5楼所说:如果源是目录,不包括复制源的主目录本身。
  1. ::要复制源目录本身:使用 i 参数,并在目标上加上源目录名
  2. xcopy /yesiq 源目录 目标目录\源目录
复制代码

作者: Batcher    时间: 2022-4-2 11:52

回复 1# swanseabrian
  1. @echo off
  2. cd /d "%~dp0"
  3. for /d %%a in (*) do (
  4.     pushd "%%a"
  5.     if exist "test2" (
  6.         md "C:\Users\Administrator\Desktop\bat\20220331样本\新建文件夹 (2)\新建文件夹\2\%%a"
  7.         xcopy /y /q /e "test2" "C:\Users\Administrator\Desktop\bat\20220331样本\新建文件夹 (2)\新建文件夹\2\%%a\test2\"
  8.     )
  9.     popd
  10. )
复制代码

作者: Batcher    时间: 2022-4-2 12:01

回复 1# swanseabrian


推荐使用 robocopy 命令,它的多线程复制速度快
http://bbs.bathome.net/thread-6283-1-1.html#pid40646
作者: qixiaobin0715    时间: 2022-4-2 12:09

本帖最后由 qixiaobin0715 于 2022-4-2 12:11 编辑

回复 7# Batcher
需要创建文件夹test2
  1. md "C:\Users\Administrator\Desktop\bat\20220331样本\新建文件夹 (2)\新建文件夹\2\%%a\test2"
复制代码
反正是给楼主绕糊涂了,不知要干什么。
作者: Batcher    时间: 2022-4-2 12:20

回复 9# qixiaobin0715


    目标文件夹结尾有\,xcopy会自动创建的
作者: qixiaobin0715    时间: 2022-4-2 12:43

我以为和copy一样呢,谢谢。
作者: qixiaobin0715    时间: 2022-4-2 12:51

回复 10# Batcher
就是说7楼代码中md一行就没什么作用了。
作者: Batcher    时间: 2022-4-2 12:52

回复 12# qixiaobin0715


    是的,那个md可有可无。
作者: swanseabrian    时间: 2022-4-3 09:50

回复 9# qixiaobin0715


    就是想怎么才能复制空文件夹呀,

或者文件夹连同文件夹里的东西一起复制,

而不是只复制文件夹里的东西
作者: swanseabrian    时间: 2022-4-3 09:53

回复 8# Batcher


    好的,那不用xcopy了 谢谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2