根据文件夹名字批量复制到另外一个文件夹内

在同一目录下的多个文件夹,把所需的文件夹名字记在TXT,或者Excel,根据里面的名字把文件夹复制出来,放进新的文件夹内,bat格式的最好

仅供参考:
可以使用以下的 Windows 命令行批处理脚本来实现根据文件夹名字批量复制到另外一个文件夹内:

@echo off
setlocal enabledelayedexpansion

set source_directory=C:\path\to\source\directory
set destination_directory=C:\path\to\destination\directory
set list_file=C:\path\to\list\file.txt

if not exist "%destination_directory%" mkdir "%destination_directory%"

for /f "usebackq" %%i in ("%list_file%") do (
    set folder_name=%%i
    set source_path=%source_directory%\!folder_name!
    set destination_path=%destination_directory%\!folder_name!
    if exist "!source_path!" xcopy /e /i "!source_path!" "!destination_path!"
)

echo Done.
pause

其中,需要将以下变量替换为实际的值:

source_directory: 源文件夹的路径。
destination_directory: 目标文件夹的路径。
list_file: 包含要复制的文件夹名称的文本文件的路径。
脚本的工作原理是,从文本文件中读取每个文件夹的名称,然后使用 xcopy 命令将对应的文件夹复制到目标文件夹中。如果目标文件夹不存在,则会先创建它。

请注意,该脚本假设所有文件夹都在同一级目录下。如果您需要复制嵌套在其他文件夹中的文件夹,则需要在脚本中添加递归功能。

该回答引用ChatGPT


import os
import shutil

# 读取包含文件夹名称的文件,文件中每一行为一个文件夹名称
with open('folders.txt', 'r') as f:
    folder_names = [line.strip() for line in f]

# 复制文件夹
for folder_name in folder_names:
    src_folder = os.path.join(os.getcwd(), folder_name)
    dest_folder = os.path.join(os.getcwd(), 'new_folder', folder_name)
    shutil.copytree(src_folder, dest_folder)