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

怎么批量复制文件夹里所有子目录,包括子目录中指定后缀的文件到新的文件夹保持原有的结构目录,且复制的子目录中指定后缀的文件到新文件夹相应的子目录文件夹里?比如:d盘有文件夹... 怎么批量复制文件夹里所有子目录,包括子目录中指定后缀的文件到新的文件夹保持原有的结构目录,且复制的子目录中指定后缀的文件到新文件夹相应的子目录文件夹里?
比如: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,其余后缀名的文件不复制。
通过命令如何实现?
展开
 我来答
百度网友d8f9ba5
2018-08-20 · TA获得超过209个赞
知道小有建树答主
回答量:103
采纳率:96%
帮助的人:40.7万
展开全部

你也没说对语言的要求?命令是什么命令?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)
johnwanz
2018-08-20 · TA获得超过781个赞
知道小有建树答主
回答量:716
采纳率:80%
帮助的人:233万
展开全部
如果是CMD指令, 以前学到的是 xcopy.
xcopy /? 可以取得详细说明
按需求, 基本要下 /S, 会复制所有的文件及文件夹
追问
现在只会复制文件夹里的目录结构,要指定文件复制到指定文件夹就不行了,用的就是xcopy
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8a2ced7
2018-08-20 · 超过14用户采纳过TA的回答
知道答主
回答量:98
采纳率:44%
帮助的人:26.1万
展开全部
初恋的女友为钱抛弃了他!从此他不相信爱情,认为女人的“爱情”等于钞票的厚度!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式