我们现在有一批新PC正在手动备份本地配置文件。我编写了一个脚本来备份每个用户配置文件的主要文件,但有人指出我们的用户使用便签并希望那些备份。
在测试我使用的代码时:
XCOPY "C:\USERS\%username%\AppData\Roaming\Microsoft\Sticky Notes" %Input%\%computername%\AppData\ /Y
我知道这只会复制当时登录的人。我确实尝试使用*.*
代替%username%但没有运气。有没有办法可以将每个用户.snt文件复制到以其用户名命名的文件夹中?
%输入%是外部驱动器号&正在进行备份的技术人员输入冒号(例E :)。
答案 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"