批处理文件 - 使用For& Xcopy获取无效的参数数量(不是引号)?

时间:2013-11-13 23:00:16

标签: loops batch-file for-loop xcopy

基本上我要做的是制作一个批处理文件,该文件将通过计算机运行,并从计算机上的任何用户的桌面和我的文档中获取所有内容。事实是,我不会知道每个用户的名字,因为它将在未知的计算机上用于备份。试图找到一种方法来复制这些东西但到目前为止我不能。我一直在研究我的文档,并且不断获得“参数数量无效”。

@echo off
echo This script will copy all of the files from my documents onto a C drive.
pause
md "C:\TestForWork"
pause
for /D /r %%G in ("C:\Users") DO for /D /r "%%H" in ("%%G\My Documents\") do xcopy %%H /e /y "C:\TestFor Work"
pause

2 个答案:

答案 0 :(得分:1)

for /d %%u in ("c:\users\*") do for %%f in ("Desktop" "Documents") do (
    robocopy "%%~u\%%~f" "c:\test for work\%%~u\%%~f" /s
)

或者,对于xcopy

for /d %%u in ("c:\users\*") do for %%f in ("Desktop" "Documents") do (
    xcopy "%%~u\%%~f" "c:\test for work\%%~u\%%~f" /e /y /i
)

答案 1 :(得分:0)

您需要将第一个参数括在双引号的xcopy中,因为它是一个包含空格的目录名:

for /D /r %%G in ("C:\Users") DO (
    for /D /r %%H in ("%%~G\My Documents\") do (
        xcopy "%%~H" /e /y "C:\TestFor Work"
    )
)

您还需要使用~来防止双引号包含在变量扩展中。