怎么批量复制文件夹里所有子目录,包括子目录中指定后缀的文件到新的文件夹保持原有的结构目录,且...

怎么批量复制文件夹里所有子目录,包括子目录中指定后缀的文件到新的文件夹保持原有的结构目录,且复制的子目录中指定后缀的文件到新文件夹相应的子目录文件夹里?
比如:d盘有文件夹“123”,123文件夹里有文件夹“aa,bb,cc”,在“aa”里有文件11.txt、11.jpg,在“bb”里有文件22.txt、22.jpg,在“cc”里有文件33.txt、33.jpg。
现在需要将d盘文件夹123里的aa,bb,cc文件夹及aa,bb,cc里的.txt文件批量复制到E盘456文件夹,且复制到456文件夹里的aa,bb,cc文件夹里有对应和d盘一样的在“aa”里有文件11.txt,在“bb”里有文件22.txt,在“cc”里有文件33.txt,其余后缀名的文件不复制。
通过命令如何实现?

你也没说对语言的要求?命令是什么命令?bash?dos?

我做过一个类似的,python 的,感觉和你这个有点像,你可以看看。

指定后缀名说白了不过是一个正则而已:/.*[.]txt$/ 就指定了 txt 文件的后缀了。

ps:这个正则是 js 的正则。

代码 gist,自行翻墙

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import os
import random
import shutil


os.mkdir('.%s%s' % (os.sep, 'top'))
os.chdir('.%s%s' % (os.sep, 'top'))
print('你现在处于:%s' % os.path.abspath(os.curdir))

# 创建 100 个随机文件夹,并放入 a b c d e
for i in range(0, 100):
    randDirName = str(random.randint(0, 99999))
    os.mkdir(r'%s' % (randDirName))
    for fileName in ['a', 'b', 'c', 'd', 'e']:
        fd = open(r'%s%s%s' % (randDirName, os.sep, fileName), 'w+')
        fd.close()

# 再额外建立 5 个新文件夹  A B C D E
for fileName in ['a', 'b', 'c', 'd', 'e']:
    os.mkdir(fileName)
    
# 现在根据名字提取那 100 随机命名文件夹中指定姓名的文件
_100RandDirName = []
for dirName in os.listdir():
    if dirName not in ['A', 'B', 'C', 'D', 'E']:
        _100RandDirName.append(dirName)
print(len(_100RandDirName))

# os.sep 跨平台用
# 将对应名字的文件存入对应的名字的文件夹中
for someOneDir in _100RandDirName:
    listFileNames = os.listdir(someOneDir)
    for fileName in ['a', 'b', 'c', 'd', 'e']:
        if fileName in listFileNames:
            src = '%s%s%s' % (someOneDir, os.sep, fileName)
            target = '%s' % (fileName.upper())
            shutil.copy(src, target)
            oldName = '%s%s%s' % (target, os.sep, fileName)
            newName = '%s%s%s_%s' % (target, os.sep, someOneDir, fileName)
            os.rename(oldName, newName)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-20
如果是CMD指令, 以前学到的是 xcopy.
xcopy /? 可以取得详细说明
按需求, 基本要下 /S, 会复制所有的文件及文件夹追问

现在只会复制文件夹里的目录结构,要指定文件复制到指定文件夹就不行了,用的就是xcopy

本回答被网友采纳
第2个回答  2018-08-20
初恋的女友为钱抛弃了他!从此他不相信爱情,认为女人的“爱情”等于钞票的厚度!
相似回答