batch/bat 一次复制文件夹和内容

     2023-02-23     179

关键词:

【中文标题】batch/bat 一次复制文件夹和内容【英文标题】:batch/bat to copy folder and content at once 【发布时间】:2011-07-01 01:19:33 【问题描述】:

我正在编写一个执行复制的批处理脚本。我想编写脚本来复制整个文件夹。当我想复制单个文件时,我会这样做

copy %~dp0file.txt file.txt 

如果我有一个具有这种结构的文件夹,是否有一个命令可以一次复制整个文件夹及其内容,同时保留确切的结构。

mainfolder/
  file1.txt
  file2.txt
  insidefolder/
     file3.txt
     file4.txt 
     file5.txt

【问题讨论】:

【参考方案1】:

如果你有xcopy,你可以使用/E参数,它将复制目录和子目录以及其中的文件,包括维护空目录的目录结构

xcopy [source] [destination] /E

【讨论】:

可能你也想包含隐藏文件,保持安静,永远不要要求确认。如果是这种情况,您可以使用:xcopy [source] [destination] /E /H /C /R /Q /Y 在任何情况下,请使用xcopy /?检查这些选项的作用 由于某种原因,这并没有为我复制父目录中的所有文件 xcopy 已弃用,并在文件名超过 254 个字符时触发“内存不足”错误。改用robocopyrobocopy C:\source D:\destination /COPYALL /E en.wikipedia.org/wiki/Robocopy【参考方案2】:

老办法:

xcopy [source] [destination] /E

xcopy弃用。 Robocopy 取代了 Xcopy。它带有 Windows 8、8.1 和 10。

robocopy [source] [destination] /E

robocopy 有几个优点:

复制路径超过 259 个字符 多线程复制

更多详情here.

【讨论】:

我在Windows 7上测试robocopy /?,它也支持。【参考方案3】:

我怀疑xcopy 命令是您要寻找的灵丹妙药。

它可以在保留原始目录层次结构的同时复制文件、目录甚至整个驱动器。与基本的 copy 命令相比,还有一些额外的选项可用。

查看documentation here。

如果您的批处理文件只需要在 Windows Vista 或更高版本上运行,您可以改用robocopy,这是一个比xcopy 更强大的工具,现在已内置在操作系统中。它的文档是可用的here。

【讨论】:

【参考方案4】:

您可以使用的文件夹复制

robocopy C:\Source D:\Destination /E

用于文件复制

copy D:\Sourcefile.txt D:\backup\Destinationfile.txt /Y 

删除某个文件夹中的文件上次修改日期超过某天

forfiles -p "D:\FolderPath" -s -m *.[Filetype eg-->.txt] -d -[Numberof dates] -c "cmd /c del @PATH"

你可以在windows中安排任务在特定的时间自动执行这个任务。

【讨论】:

【参考方案5】:

我对原版很感兴趣 这里的问题和相关问题。

为了得到答案,这周我做了一些 使用 XCOPY 进行实验。

为了帮助回答原始问题,请点击此处 我发布了我的实验结果。

我在 Windows 7 64 位上进行了实验 带有 XCOPY 副本的 Professional SP1 操作系统自带的。

为了实验,我在 脚本语言 Open Object Rexx 和编辑器宏语言 Kexx 文本编辑器 KEdit。

XCOPY 是从 Rexx 代码调用的。这 Kexx 代码编辑了屏幕输出 XCOPY 以专注于关键结果。

实验都与使用有关 XCOPY 复制一个目录有几个 文件和子目录。

实验由 10 个案例组成。 每个案例都将参数调整为 XCOPY 并调用 XCOPY 一次。 10 例均为 试图做同样的复制 操作。

以下是主要结果:

(1) 10 例中,只有 3 例 复制。其他7例马上, 只是从处理论点到 XCOPY,给出错误信息,例如,

Invalid path

Access denied

没有复制任何文件。

在进行复制的三个案例中,他们 所有人都做了同样的复制,也就是说,给了 相同的结果。

(2) 如果要复制一个目录 X 和所有 目录 X 中的文件和目录, 在分层文件系统树中 植根于目录 X,然后显然 XCOPY——这似乎是 最初的问题——只是不会做 那个。

一个后果是,如果使用 XCOPY 复制目录 X 及其内容,然后 可以复制内容但不能复制 目录 X 本身;因此,失去 目录 X 上的时间戳,它的 存档位,所有权数据, 属性等

当然,如果目录 X 是子目录 目录 Y,Y 的 XCOPY 将复制 目录 Y WITH 的所有内容 目录X。所以这样可以得到一份拷贝 目录 X. 但是, 目录 X 将有它的时间戳 XCOPY 和 NOT 的运行时间 原件的时间戳 目录 X。

时间戳的这种变化可以 对于一个目录的副本来说很尴尬 大量下载的网页:HTML 网页的文件将有它的 原始时间日期戳,但 所用文件的相应子目录 由 HTML 文件将有时间-日期 XCOPY 运行的印章。那么,当 按时间日期戳对副本进行排序,所有 子目录、HTML 文件和 对应的子目录,例如,

x.htm

x_files

在排序中可能会显得相距很远 时间-日期。

分层文件系统可以追溯到很久以前, IIRC 于 1969 年在 MIT 转为 Multics,此后 然后很多人都认出了 两种情况,给定目录 X,(i) 复制 目录 X 及其所有内容和 (ii) 复制 X 的所有内容,但不复制 目录 X 本身。好吧,如果只是从 实验,XCOPY 只做 (ii)。

所以,10 个案例的结果如下。 对于每种情况,结果中的第一个 三行有前三个参数 到 XCOPY。所以,第一行有树 要复制的目录的名称, '资源';第二行有树 获取副本的目录名称, “目的地”,第三行有 XCOPY 的选项。剩下的1-2 行有运行的结果 复制。

关于选项的一大要点是 选项 /X 和 /O 产生结果

Access denied

要查看这一点,请将案例 8 与其他案例进行比较 相同的情况,没有 /X 和 /O,但确实复制了。

这些实验让我变得更好 了解 XCOPY 并提供答案 到原来的问题。

======= case 1 ==================
"k:\software\dir_time-date\"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_1\"
options = /E /F /G /H /K /O /R /V /X /Y
Result:  Invalid path
Result:  0 File(s) copied
======= case 2 ==================
"k:\software\dir_time-date\*"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_2\"
options = /E /F /G /H /K /O /R /V /X /Y
Result:  Access denied
Result:  0 File(s) copied
======= case 3 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_3\"
options = /E /F /G /H /K /O /R /V /X /Y
Result:  Access denied
Result:  0 File(s) copied
======= case 4 ==================
"k:\software\dir_time-date\"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_4\"
options = /E /F /G /H /K /R /V /Y
Result:  Invalid path
Result:  0 File(s) copied
======= case 5 ==================
"k:\software\dir_time-date\"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_5\"
options = /E /F /G /H /K /O /R /S /X /Y
Result:  Invalid path
Result:  0 File(s) copied
======= case 6 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_6\"
options = /E /F /G /H /I /K /O /R /S /X /Y
Result:  Access denied
Result:  0 File(s) copied
======= case 7 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_7"
options = /E /F /G /H /I /K /R /S /Y
Result:  20 File(s) copied
======= case 8 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_8"
options = /E /F /G /H /I /K /O /R /S /X /Y
Result:  Access denied
Result:  0 File(s) copied
======= case 9 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_9"
options = /I /S
Result:  20 File(s) copied
======= case 10 ==================
"k:\software\dir_time-date"
"k:\software\xcopy002_test\xcopy002_test_dirs\output_sub_dir_10"
options = /E /I /S
Result:  20 File(s) copied

【讨论】:

为啥 PHP 一次发送所有内容? [复制]

】为啥PHP一次发送所有内容?[复制]【英文标题】:WhydoesPHPsenditallatonce?[duplicate]为什么PHP一次发送所有内容?[复制]【发布时间】:2012-07-1716:27:29【问题描述】:可能重复:whatisoutputbuffering?我有一些内容需要一段时间才能由PHP生... 查看详情

根据名称复制文件夹和内容,没有完整路径

】根据名称复制文件夹和内容,没有完整路径【英文标题】:Copyfolderandcontentsbasedonname,withoutfullpath【发布时间】:2021-02-2317:41:48【问题描述】:所以,我知道标题有点乱,但我无法更好地解释它所以更容易理解,我将模拟我所面... 查看详情

如何最小化运行批处理文件(代码片段)

我想通过另一个批处理或vbs脚本以最小化模式运行批处理文件。我尝试的是:batch1.bat@echooffstart/minbatch2.batbatch2.bat@echooffmyprogramdel/f/qbatch1.bat>nuldel/f/qbatch2.bat>nul当我尝试这一切时,一切运行完美第二批运行并完成它的工作,... 查看详情

仅复制文件夹

】仅复制文件夹【英文标题】:CopyJusttheFolder【发布时间】:2021-12-1823:51:51【问题描述】:我想一次只将一个文件夹从一个位置复制到另一个位置目前我先去重命名复制名称并返回当前位置并创建一个新文件夹并粘贴名称就像Tree... 查看详情

表格单元格的内容水平和垂直居中? [复制]

...CSS示例,但我不是CSS类型的人,我不想真正了解它。这是一次性编辑。<table 查看详情

请教如何用按键精灵把已复制的文本内容粘贴到excel指定位置,谢谢!!

...的数字,比如101,102,103……想做个加1循环谢谢了!!一次性复制下列全部数值---》粘贴到名字为101的excel文件指定位置--》保存---》退出---》一次性复制另一列数值---》粘贴到名字为102的excel文件指定位置--》保存---》退出---》... 查看详情

javaio(06)文件复制

...进行操作:1:将源文件中的内容全部读取到内存中,并一次性的写入到目标文件中;(不常用这种方式)2:不将源文件中的内容全部读取进来,而是采用边读边写的方式; 实例01:packagecn.itcast05;importjava.io.FileInputStream;importj... 查看详情

rsync

...时间、软硬链接等等。无须特殊权限即可安装。快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操 查看详情

如何获取文本文件的内容并将其复制到剪贴板?

...,它都会被复制到剪贴板。它的工作方式很简单,程序第一次运行时,它检测到安装目录中的两个.txt都是空的,会提示用户填写。到这里为止 查看详情

如何使用分隔符和添加制表符逐行拆分文件内容? [复制]

】如何使用分隔符和添加制表符逐行拆分文件内容?[复制]【英文标题】:Howtosplitfilecontentslinebylinebyusingdelimiterandaddtab?[duplicate]【发布时间】:2019-08-3017:29:08【问题描述】:我正在尝试逐行拆分txt文件并希望添加选项卡。对于第... 查看详情

使用 read()、write()、open() 将文件的内容复制到另一个文件

...来简单地抓取文件的内容并将它们转置到输出文件中。第一次运行我的程序时,我没有收到任何错误,而且看起来一切正常。但是,当我检查我的输出文件时,文件中没有任 查看详情

字节流案例——复制文件

...取read();字节输出流——写入——刻盘write();一次读取和写入一个字节:其中,这个图片文件可能百万个字节大小,要循环百万次,效率很低;使用数组缓冲一次读取多个字节和写入多个字节:其中,创建byte[]字节类... 查看详情

多个需要复制的内容----自定义复制粘贴--快捷键---的---方法或工具?

...择复制一段文字,不要急于粘贴。5.抄写第二段。你可以一次复制10个段落。6.复制完成后,输入文档,按住Ctrl+Shift+C的快捷键组合粘贴,刚才复制出来的内容。7.有选择地粘贴内容。参考技术A在天空软件站里,搜索“复制工具”... 查看详情

批处理文件以循环遍历文件夹并将文件夹和内容复制到具有相同文件夹名称的目录

】批处理文件以循环遍历文件夹并将文件夹和内容复制到具有相同文件夹名称的目录【英文标题】:BatchFiletoLoopThroughFoldersandCopyFolder&ContentstoDirectorywithSameFolderName【发布时间】:2014-12-1417:06:51【问题描述】:每个月,公司都会... 查看详情

javapoi操作xlsx文件,如何在原xlsx上进行某一行的复制到当前xlsx的新增行,内容和样式和原行保持不变

...笨的方法,可以读取每一个单元格,再新增一行,将数据一次插入HSSFSheetsheet=workbook.getSheetAt(0);先创建一个sheet对象HSSFRowrow=sheet.getRow(0);以第一行为例short lenth=row.getLastCellNum();获取列数遍历列,用row.getCell()获取列值创建新行... 查看详情

javaio流复制文件内容

...,有办法修改吗?呃,简单地说是因为你对同一个文件同一次读取进行两次,第一次while读取完后,你本意是仅仅想看看里面到底是什么东西,所以你命令fis一个字节一个字节地往下读,直到fis读取到文件的末尾(此时while里面... 查看详情

rsync(代码片段)

...时间、软硬链接等等。无须特殊权限即可安装。快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据 查看详情

百度编辑支持word内容和截图的复制黏贴

这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@&n 查看详情