使用已知文件夹名称的文本文件有选择地复制目录中的文件夹

时间:2013-12-24 05:34:17

标签: batch-file command-line windows-7 scripting batch-processing

我的Windows框上有一个目录,我想有选择地将文件夹及其内容复制到另一个目录。我理解基本的复制命令和批处理脚本的命令,但我很失落如何完成这个。

我有一个大文本文件,其中包含我要复制的目录的所有文件夹名称,有没有什么方法可以在批处理文件的for循环中输入文件名?我需要做一个目录的递归副本。

为了澄清,我有一个包含文件夹名称的文本文件:

"folder 1"
"folder 2"
"folder 3"
"folder 4"

并且只是从一个位置到另一个位置,例如c:\sourced:\source_backup

1 个答案:

答案 0 :(得分:0)

@echo off

setlocal enableextensions disabledelayedexpansion

set "source=c:\somewhere\from"
set "target=c:\somewhere\to"
set "folderList=c:\somewhere\folders.txt"

for /f "tokens=* usebackq" %%a in ("%folderList%") do for %%b in (%%a) do (
    if not "%%~b"=="" echo robocopy "%source%\%%~b" "%target%\%%~b" * /e
)

添加第二个for循环(%%b)以处理引用文件夹名称之外的可能空格。最终复制操作仅响应控制台。如果输出正确,请删除echo命令。