0

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

@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
4

2 回答 2

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
)
于 2013-11-14T07:55:59.257 回答
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"
    )
)

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

于 2013-11-13T23:08:54.877 回答