基本上我要做的是制作一个批处理文件,该文件将通过计算机运行,并从计算机上的任何用户的桌面和我的文档中获取所有内容。事实是,我不会知道每个用户的名字,因为它将在未知的计算机上用于备份。试图找到一种方法来复制这些东西但到目前为止我不能。我一直在研究我的文档,并且不断获得“参数数量无效”。
@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
答案 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"
)
)
您还需要使用~
来防止双引号包含在变量扩展中。