win7中用cmd复制“库”中的所有目录中的所有文件
发布网友
发布时间:2022-05-26 17:04
我来回答
共2个回答
热心网友
时间:2023-10-30 08:27
这个工作真是累,库目录可不是真的文件夹,需要先分析库的数据后才能得到里面包含的文件夹路径。哈哈,搞了老半天,终于写出来了,本机测试通过,你的电脑请测试吧,如有问题,请追问。
代码如下:
@echo off
title 备份库里面的文件以及最近打开位置记录
:::::::::::::::::::::::::::::::::::::::::::::::::
set bak=D:\库文件备份
::自行修改以上备份路径
:::::::::::::::::::::::::::::::::::::::::::::::::
cd /d "%AppData%\Microsoft\Windows\Libraries"
for /f "delims=" %%a in ('dir /a-d/b *.library-ms') do (
for /f "tokens=2 delims={}" %%b in ('findstr /i /c:"knownfolder" %%~a') do (
if /i "%%b"=="4BD8D571-6D19-48D3-BE97-422220080E43" (
xcopy /s/e/c/h/k/j "%userprofile%\Music" "%bak%\用户\Music\"
) else (
if /i "%%b"=="3214FAB5-9757-4298-BB61-92A9DEAA44FF" (
xcopy /s/e/c/h/k/j "%public%\Music" "%bak%\公用\Music\"
) else (
if /i "%%b"=="18989B1D-99B5-455B-841C-AB7C74E4DDFC" (
xcopy /s/e/c/h/k/j "%userprofile%\Videos" "%bak%\用户\Videos\"
) else (
if /i "%%b"=="2400183A-6185-49FB-A2D8-4A392A602BA3" (
xcopy /s/e/c/h/k/j "%public%\Videos" "%bak%\公用\Videos\"
) else (
if /i "%%b"=="33E28130-4E1E-4676-835A-98395C3BC3BB" (
xcopy /s/e/c/h/k/j "%userprofile%\Pictures" "%bak%\用户\Pictures\"
) else (
if /i "%%b"=="B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5" (
xcopy /s/e/c/h/k/j "%public%\Pictures" "%bak%\公用\Pictures\"
) else (
if /i "%%b"=="FDD39AD0-238F-46AF-ADB4-6C85480369C7" (
xcopy /s/e/c/h/k/j "%userprofile%\Documents" "%bak%\用户\Documents\"
) else (
if /i "%%b"=="ED4824AF-DCE4-45A8-81E2-FC7965083634" (
xcopy /s/e/c/h/k/j "%public%\Documents" "%bak%\公用\Documents\"
)
)
)
)
)
)
)
)
)
for /f "tokens=3-4* delims=><:" %%b in ('findstr /i /c:"url" %%~a') do (
if /i not "%%b"=="knownfolder" xcopy /s/e/c/h/k/j "%%b:%%c" "%bak%\其它\%%b%%c\"
)
)
xcopy /s/e/c/h/k/j "%AppData%\Microsoft\Windows\Recent" "%bak%\Recent\"
pause
热心网友
时间:2023-10-30 08:28
通过 XCOPY命令来实现。或者写一个批处理文件了。