MSDOS上的文件夹和子文件夹副本

时间:2013-12-23 15:12:13

标签: batch-file subdirectory xcopy robocopy directory-structure

我有一个包含9500个文档的文件夹(如果是folder1则调用)。我想用它具有的结构制作这个文件夹的副本,但我想在新文件夹(我们称之为文件夹2)中将所有文件都空白。 Folder1包含几种类型的文档。直到现在我还有代码:

@echo off
set "source=C:\Users\DM\Desktop\folder1\*.*"
set "dest=C:\Users\DM\Desktop\folder2"

xcopy "%source%" "%dest%" /t/e
for /f "tokens=2 delims=>" %%a in ('xcopy "%source%" "%dest%" /s/h/e/k/f/c/l') do (
for /f "tokens=*" %%b in ("%%a") do type nul >"%%b"
)
pause

棒球没问题,但过了一段时间,cmd上有3个不同的错误,它堆叠在那里(我的窗户是希腊语所以我试图翻译错误)。一个是“内存不够”,下一个是“系统找不到指定的磁盘(或驱动器)路径”(它是我认为的两个驱动器/磁盘之一),最后一个是“文件名语法” ,目录或卷标是incorect“。它停在具有“<>”的特定htm文件标题上的字符。

你能告诉我应该添加什么吗? 提前致谢

2 个答案:

答案 0 :(得分:0)

我希望下面的代码会有所帮助。但它回应了所有文件的新行。我无法在!fileRelPath:C:\ te \ tmp \ =!

中使用source作为参数
@echo off
setlocal enabledelayedexpansion

set source=C:\te mp\
set dest=C:\te mp2\

if not exist "%dest%" mkdir "%dest%"

xcopy "%source%*" "%dest%" /t /e

for /F "tokens=*" %%a in ('dir /B /S /A-D "%source%"') do (
    set fileRelPath=%%a
    set fileRelPath=!fileRelPath:C:\te mp\=!

    echo.>"%dest%!fileRelPath!"
)

答案 1 :(得分:0)

正如马古所说,这很奇怪。

无论如何,在找到失败的地方时,你可以用

做同样的事情
robocopy "%source%" "%dest%" * /e /create