我真的找不到任何问题:
我有一个文件夹C:\ dir1 \ dir2我通过读取文件获取此目录,因此我不知道dir1或dir2的名称。我想将dir2复制到目标目录C:\ target中。最后我想要C:\ target \ dir2,目标中的dir2应该包含dir2源中的所有文件。当我使用/ s开关尝试xcopy时,它会将源dir2中的文件直接复制到目标中,而不会在目标中创建dir2。如何确保创建此目录?
我必须实现自动创建dir2。
编辑:
for /F "tokens=*" %%i in (%maindir%\mydir.txt) do call :process2 %%i
:process2
set sourcefile=%*
xcopy /s "%sourcefile%" target
基本上是我的批处理文件的一部分。在mydir.txt中我得到一些目录,如C:\ dir1 \ dir2,其中包含文件file1 file2等。目标我现在有
目标\文件file1 目标\ file2的
但我想要目标\ dir2 \ file1和目标\ dir2 \ file2
希望能让它更清晰一点。
答案 0 :(得分:2)
@ECHO OFF
SETLOCAL
SET "sourcedir=c:\sourcedir\with space"
SET "destdir=c:\destdir"
FOR /f "delims=" %%a IN ("%sourcedir%") DO (
XCOPY /s "%sourcedir%" "%destdir%\%%~nxa\"
)
GOTO :EOF
这应该为你完成工作。我假设你已经从你的文件中设置了sourcedir
- 我只是使用了一个名字中包含空格的目录。您可能希望将>nul
附加到XCOPY
行以取消消息。
答案 1 :(得分:0)