批量文件复制所有用户配置文件App数据

时间:2015-12-01 12:02:08

标签: batch-file

我们现在有一批新PC正在手动备份本地配置文件。我编写了一个脚本来备份每个用户配置文件的主要文件,但有人指出我们的用户使用便签并希望那些备份。

在测试我使用的代码时:

XCOPY "C:\USERS\%username%\AppData\Roaming\Microsoft\Sticky Notes" %Input%\%computername%\AppData\ /Y

我知道这只会复制当时登录的人。我确实尝试使用*.*代替%username%但没有运气。有没有办法可以将每个用户.snt文件复制到以其用户名命名的文件夹中?

%输入%是外部驱动器号&正在进行备份的技术人员输入冒号(例E :)。

1 个答案:

答案 0 :(得分:1)

*?等通配符只能在路径的最低级别使用,因此C:\USERS\*.*\AppData\Roaming\Microsoft\Sticky Notes不起作用。但是,C:\USERS\*有效。

因此,您可以使用for /D遍历所有用户目录,如下所示:

for /D %%D in ("C:\USERS\*") do (
    xcopy /I /Y "%%~fD\AppData\Roaming\Microsoft\Sticky Notes\*.snt" "%Input%\%ComputerName%\%%~nxD\AppData"
)

我将模式*.snt附加到源路径,因为您在问题中提到了这些文件。

我还在目标路径中添加了目录级%%~nxD,这是当前迭代用户的名称,以避免重复路径出现问题。

最后,我添加了/I开关,告诉xcopy目的地是一个目录,以避免出现这样的提示。

要在命令提示符中直接使用上述代码,请按以下方式编写:

for /D %D in ("C:\USERS\*") do xcopy /I /Y "%~fD\AppData\Roaming\Microsoft\Sticky Notes\*.snt" "%Input%\%ComputerName%\%~nxD\AppData"