目录
应用二:复制文件夹内文件(含目录、空目录;子目录文件也包含)
在大量、重复、文件分散分布、仅想复制指定子文件夹或文件的情况下,使用命令行复制文件相对于使用资源管理器复制文件来说更加方便自如。windows系统中的文件复制命令为copy、xcopy。经过了解xcopy命令的参数,发现xcopy命令可以较好的实现文件目录及目录下文件的复制,具有一定的实用价值,故作记录。
设有一个目录是F:\测试xcopy,其文件夹结构如下:
- F:\测试xcopy>dir /ad /b /s
- F:\测试xcopy\1
- F:\测试xcopy\2
- F:\测试xcopy\1\01
F:\测试xcopy,其文件结构如下:
- F:\测试xcopy>dir /a-d /b /s
- F:\测试xcopy\1.csv
- F:\测试xcopy\1.docx
- F:\测试xcopy\1.txt
- F:\测试xcopy\1\1.csv
- F:\测试xcopy\1\1.docx
- F:\测试xcopy\1\1.txt
- F:\测试xcopy\2\1.csv
xcopy命令可以代替copy命令执行更加复杂的文件复制工作。如使用copy来复制文件夹,则需要采用for、copy、md等命令来组合使用,实现思路是根据for命令来遍历需要读取的文件夹,在循环体内,先md创建文件夹,然后copy复制文件,较为麻烦,而xcopy可以使用一个命令完成上述操作。
首先创建目录F:\测试xcopy1,然后执行以下命令,可以看到仅复制了当前文件夹根目录下的文件,子目录文件及文件夹未复制。
- F:\测试xcopy>xcopy F:\测试xcopy
- F:\测试xcopy1 /i
- F:\测试xcopy\1.csv
- F:\测试xcopy\1.docx
- F:\测试xcopy\1.txt
- F:\测试xcopy\1.xlsx
- 复制了 4 个文件
结合通配符,可以对要复制的文件进行筛选。
- F:\测试xcopy1>xcopy F:\测试xcopy\*.txt
- F:\测试xcopy\1.txt
- 复制了 1 个文件
-
- F:\测试xcopy1>dir F:\测试xcopy1 /b /s
- F:\测试xcopy1\1.txt
先清空F:\测试xcopy1下的文件及文件夹,执行以下xcopy命令,可以看到复制后的F:\测试xcopy1目录及文件与F:\测试xcopy的目录及文件相同。想要不包含,可以将参数/e 改为/s
- F:\>xcopy F:\测试xcopy F:\测试xcopy1 /i /e
- F:\测试xcopy\1.csv
- F:\测试xcopy\1.docx
- F:\测试xcopy\1.txt
- F:\测试xcopy\1.xlsx
- F:\测试xcopy\1\1.csv
- F:\测试xcopy\1\1.docx
- F:\测试xcopy\1\1.txt
- F:\测试xcopy\2\1.csv
- 复制了 8 个文件
- F:\>dir F:\测试xcopy1 /b /s
- F:\测试xcopy1\1
- F:\测试xcopy1\1.csv
- F:\测试xcopy1\1.docx
- F:\测试xcopy1\1.txt
- F:\测试xcopy1\1.xlsx
- F:\测试xcopy1\2
- F:\测试xcopy1\1\01
- F:\测试xcopy1\1\1.csv
- F:\测试xcopy1\1\1.docx
- F:\测试xcopy1\1\1.txt
- F:\测试xcopy1\2\1.csv
以上命令的优化:
适合在复制大文件时使用
xcopy F:\测试xcopy F:\测试xcopy1 /i /e /j
适合在需要覆盖文件且不需要提醒时使用
xcopy F:\测试xcopy F:\测试xcopy1 /i /e /j /y
先清空F:\测试xcopy1下的文件及文件夹,执行以下xcopy命令,可以看到复制后的F:\测试xcopy1中只包含了源文件夹下的目录及子目录,没有文件被复制,适合仅复制文件夹结构时使用。
- F:\>xcopy F:\测试xcopy F:\测试xcopy1 /i /t /e
-
- F:\>dir F:\测试xcopy1 /b /s
- F:\测试xcopy1\1
- F:\测试xcopy1\2
- F:\测试xcopy1\1\01