我正在为个人使用创建一个小的备份脚本,它在最新版本的7zip,Win7x64上运行率为99%:
:: u:更新存档
:: -t7z:使用7z文件类型(兼容性较差且结果较小)
:: -mx = 9:“超级”压缩
:: -ms = off:不创建实体存档(它们与更新存档模式不兼容)
:: -mmt = off:启用多线程
:: -r:递归(遍历所有子目录)
:: -ssw:压缩锁定的文件
:: -w:工作目录到G:驱动器(没有临时文件从磁盘复制到磁盘)
@echo“%userprofile%\ Desktop”>> LIST.TXT
@echo“%userprofile%\ Documents”>> LIST.TXT
@echo“%userprofile%\ Downloads”>> LIST.TXT
@echo“%userprofile%\ Saved Games”>> LIST.TXT
@echo“%userprofile%\ Pictures”>> LIST.TXT
“C:\ Program Files(x86)\ 7-Zip \ 7z.exe”u -t7z -mx = 9 -ms = off -mmt = on -r -ssw -wg:“G:\ AutoSaveC \ SaveC .7z“@ list.txt
del list.txt
shutdown -s -t 180
有两个问题:
1-即使存档包含所有预期的文件夹和文件,它也包含从未打算存在的东西(只有原始文件夹中的部分文件):
%USERPROFILE%\应用程序数据
%USERPROFILE%\音乐
2-它还向我发出警告,拒绝访问文件夹,我从不告诉它:
C:\ Users \ LocalAdmin \ AppData \ Local \ Application Data \:警告:拒绝访问。 C:\ Users \ LocalAdmin \ AppData \ Local \ ElevatedDiagnostics \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ AppData \ Local \ History \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ AppData \ Local \ Temp \ msdtadmin \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ AppData \ Local \ Temporary Internet Files \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ Application Data \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ Cookies \:警告:拒绝访问。 C:\ Users \ LocalAdmin \ Local Settings \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ Recent \:警告:访问被拒绝。 C:\ Users \ LocalAdmin \ SendTo \:警告:拒绝访问。
你知道我做错了什么吗?或者它是7zip的错误?
答案 0 :(得分:2)
考虑到这些目录中的文件可能存在软链接。特别是Users文件夹中填充了虚拟路径。其中存在一些路径,仅用于将仍然使用它们的旧应用程序重定向到正确的位置。
答案 1 :(得分:1)
为什么不将DIR的输出重定向到您的文本文件,而不是以您的方式回显目录的内容?这样,您就可以过滤掉隐藏文件,.lnk文件,系统文件以及许多其他文件过滤选项。例如,要清除隐藏的,系统和.lnk文件:
DIR "%userprofile%\Desktop" /b /s /a:-h-s | FIND /v "*.lnk">>"C:\some\file.txt"
/ b开关只返回filename.ext,/ s开关返回所述目录AND子目录中的所有文件,/ a:-hs开关删除所有隐藏文件和系统文件。当然,FIND / v意味着找到所有不包含以下字符串的文件。