Batch file MSDOS上的文件夹和子文件夹副本
我有一个文件夹,里面有9500个文档(如果folder1,我们就叫它)。我想复制这个文件夹的结构,但我想在新文件夹(我们称之为folder2)中,所有文档都是空白的。Folder1包含几种类型的文档。直到现在,我还拥有as代码:Batch file MSDOS上的文件夹和子文件夹副本,batch-file,subdirectory,xcopy,robocopy,directory-structure,Batch File,Subdirectory,Xcopy,Robocopy,Directory Structure,我有一个文件夹,里面有9500个文档(如果folder1,我们就叫它)。我想复制这个文件夹的结构,但我想在新文件夹(我们称之为folder2)中,所有文档都是空白的。Folder1包含几种类型的文档。直到现在,我还拥有as代码: @echo off set "source=C:\Users\DM\Desktop\folder1\*.*" set "dest=C:\Users\DM\Desktop\folder2" xcopy "%source%" "%dest%" /t/e for /f "t
@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
bat运行正常,但过了一段时间,cmd上出现了3个不同的错误,并且在那里堆叠(我的窗口是希腊语的,所以我正在尝试翻译错误)。一个是“内存不足”,另一个是“系统无法找到指定的磁盘(或驱动器)路径”(我认为这是两个驱动器/磁盘之一),最后一个是“文件名语法、目录或卷标不正确”。它在标题上有“”字符的特定htm文件处停止
你能告诉我我应该补充什么吗?
提前感谢我希望下面的代码能有所帮助。但它将新行回传到所有文件。我不能在中使用源作为参数!fileRelPath:C:\te mp\=
@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!"
)
正如马古所说,这很奇怪 无论如何,在找到失败的地方时,您可以对
robocopy "%source%" "%dest%" * /e /create
当然看起来很奇怪。从理论上讲,应该不可能有
或此用户有希腊操作系统,也可能有Unicode
文件名。也许有人可以给他提供代码页,让他在自己的地区使用。