Loops 批处理文件-用于&;Xcopy获取的参数数无效(不是引号)?
基本上,我要做的是制作一个批处理文件,它将在计算机上运行,并从台式机和我在计算机上的任何用户的文档中获取所有内容。问题是,我不会知道每个用户名,因为它将在未知计算机上用于备份。试图找到一种方法来复制这些东西,但到目前为止我还不能。我一直在处理我的文档,不断得到“无效数量的参数”Loops 批处理文件-用于&;Xcopy获取的参数数无效(不是引号)?,loops,batch-file,for-loop,xcopy,Loops,Batch File,For Loop,Xcopy,基本上,我要做的是制作一个批处理文件,它将在计算机上运行,并从台式机和我在计算机上的任何用户的文档中获取所有内容。问题是,我不会知道每个用户名,因为它将在未知计算机上用于备份。试图找到一种方法来复制这些东西,但到目前为止我还不能。我一直在处理我的文档,不断得到“无效数量的参数” 您需要将xcopy的第一个参数用双引号括起来,因为它是一个包含空格的目录名: for /D /r %%G in ("C:\Users") DO ( for /D /r %%H in ("%%~G\My Docum
您需要将
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"
)
)
您还需要使用~
来防止变量扩展中包含双引号
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
)
它仍然做同样的事情。你没有按照我的建议去做。我已经编辑了我的答案来说明问题,并更正了另一个问题。我也会对那些
/r
标志有些警惕。在运行这样的脚本之前,请始终通过将echo
放在xcopy
前面来测试它的合理性。我将它逐字复制,但仍然得到无效的参数数。哦,出于某种原因,它只是复制桌面文件?根本没有我的文档,我也没有提到或输入任何关于桌面文件的内容。您是否考虑过从外部循环开始,看看它是否会遍历C:\users
中的所有用户?(提示:不是这样的)
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
)