Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 要从所有用户配置文件复制的批处理文件_Batch File_Xcopy - Fatal编程技术网

Batch file 要从所有用户配置文件复制的批处理文件

Batch file 要从所有用户配置文件复制的批处理文件,batch-file,xcopy,Batch File,Xcopy,我想生成一个批处理文件,该文件将从用户配置文件复制所有*.doc和*.xls文件类型。然后,我会将批处理文件设置为在所有用户注销数小时后通过计划任务自动运行。以下是我所拥有的: for %%x in (doc xls) do xcopy c:\Users\user1\*.%%x "\\server\i$\User Backups\user1\%computername%\" /c /i /y /s /d 这很好,但是,我需要在批处理文件中为组织中的每个用户(user1、user2等)生成一个行

我想生成一个批处理文件,该文件将从用户配置文件复制所有*.doc和*.xls文件类型。然后,我会将批处理文件设置为在所有用户注销数小时后通过计划任务自动运行。以下是我所拥有的:

for %%x in (doc xls) do xcopy c:\Users\user1\*.%%x "\\server\i$\User Backups\user1\%computername%\" /c /i /y /s /d
这很好,但是,我需要在批处理文件中为组织中的每个用户(user1、user2等)生成一个行项目,以便我点击所有配置文件。雇用新用户时,需要使用其个人资料信息更新文件。理想情况下,我想要一些更自动化的东西,类似于:

for %%x in (doc xls) do xcopy %userprofile%\*.%%x "\\server\i$\User Backups\%username%\%computername%" /c /i /y /s /d 

缺点是,通过使用%userprofile%代替“user1”输入,它只针对当前登录的用户运行。我是否可以加入另一个选项,它不关心当前登录的用户,而只针对计算机上的所有用户配置文件运行?

您可以使用
reg query
从注册表获取用户配置文件列表,但您只关心在
C:\users
下有文件夹的用户,因此,只需循环这些:

for /d %%u in (C:\Users\*) do for %%x in (doc xls) do xcopy C:\Users\%%~nu\*.%%x "\\server\i$\User Backups\%%~nu\%computername%\" /c /i /y /s /d

谢谢你的反馈。我能够利用您的建议,并整合我的原始脚本文件。我当然感谢你的帮助!这对于WinVista及以上版本来说是完美的,但是WinXP呢?那么,如何通过userprofiles进行循环?@crosenblum,只需将“C:\Users”替换为“C:\Documents and Settings”或任何有关机器上的本地化用户配置文件位置即可。