找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28177|回复: 7

[系统相关] (已解决)批处理开机备份(修改过的才会被备份)

[复制链接]
发表于 2015-3-30 17:00:09 | 显示全部楼层 |阅读模式
本帖最后由 panda951 于 2015-4-2 22:29 编辑

完成条件
1. 首先 先利用 IF 去 check current c: /users/(username)/backup 是否存在, 如果user 是 labuser , 路徑就變為 c:/users/(username) , 存在就繼續下一步,不存在直接結束
2. 檢查 folder 內 文件 是否 在今天被修改過,如果有檔案在今天被修改過 就到下一步,沒有就結束
3. 把所有今天被修改過的文件 copy paste 到 以下地址 c:\backup
4. 把 copy 過的filename show 給使用著看
5. 把 這個batch file 設定成 當 使用者login 就自動執行
  1. @echo off

  2. copy %0 "%USERPROFILE%\「开始」菜单\程序\启动"

  3. set 1=labuser
  4. :1
  5. if exist c:\users\%1%\backup (cd..&goto 2) else (goto end)
  6. goto p
  7. :2
  8. goto p
  9. :3
  10. xcopy "C:" "c:\user\%1%\backup" /s/e/y/d/f
  11. goto p


  12. :p
  13. pause

  14. :end
  15. close
复制代码
因为我老师没写我还不明白的问题所以有些没写出来 问题是
2. 檢查 folder 內 文件 是否 在今天被修改過,如果有檔案在今天被修改過 -----》那个folder代表什么?电脑全部folder还是单单被指定的folder要被backup?
1. 首先 先利用 IF 去 check current c: /users/(username)/backup 是否存在, 如果user 是 labuser , 路徑就變為 c:/users/(username) , 存在就繼續下一步,不存在直接結束---》这个又什么意思?又改去 c:/users/(username) 又直接结束

如果无视这2个问题这个代码是不是算完成?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2015-3-30 17:19:32 | 显示全部楼层
1跟2暂时无视先
因为我那个老师还没告诉我我不明白的问题==
麻烦帮看下3-5的对不对  感谢
发表于 2015-3-30 17:54:20 | 显示全部楼层
本帖最后由 pcl_test 于 2015-3-31 11:48 编辑

回复 1# panda951
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ver | find "5.1." >nul && set "Startpath=%USERPROFILE%\「开始」菜单\程序\启动"
  4. ver | find "6." >nul && set "Startpath=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
  5. if not exist "%Startpath%\%~nx0" copy %0 "%Startpath%" /y
  6. ::if not exist "C:\Users\%USERNAME%\backup" exit
  7. if not exist "%USERPROFILE%\backup" exit
  8. if not exist "C:\backup" md "C:\backup"
  9. ::for /f "delims=" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate') do set "RegDateOld=%%a"
  10. ::set "RegDateOld=%RegDateOld:~-8%"
  11. ::reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
  12. set n=0
  13. for /r "%USERPROFILE%\backup" %%a in (*) do (
  14. set "wrdate=%%~ta"
  15. set "wrdate=!wrdate:~,10!"
  16. if "!wrdate!" equ "!date:~,10!" (xcopy "%%a" "C:\backup" /y & set n=1)
  17. )
  18. ::reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
  19. if !n! == 0 exit
  20. pause
复制代码
 楼主| 发表于 2015-3-31 09:19:56 | 显示全部楼层
回复 3# pcl_test


   他不到2秒就关 显示1 file(copy)是什么意思?
   这个要关机再开过才能跑还是直接能跑?
   我丢了很多file都copy不到(没关机)==

麻烦解答下
 楼主| 发表于 2015-3-31 11:26:30 | 显示全部楼层
回复 3# pcl_test


   不能用 registry 里的 date 来判断
   要用 %date% 来判断的
他又增加完成条件......
发表于 2015-3-31 12:26:40 | 显示全部楼层
回复 4# panda951
1、路径不对
2、文件的修改日期不对
运行以下检测程序,把显示结果截图看看
  1. @echo off
  2. echo %USERPROFILE%
  3. ver | find "5.1." >nul && set "Startpath=%USERPROFILE%\「开始」菜单\程序\启动"
  4. ver | find "6." >nul && set "Startpath=%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
  5. echo %Startpath%
  6. if not exist "C:\Users\%USERNAME%\backup" (echo NO) else (echo OK)
  7. if not exist "%USERPROFILE%\backup" (echo NO) else (echo OK)
  8. echo %date:~,10%
  9. for /r "%USERPROFILE%\backup" %%a in (*) do %%~ta

  10. for /r "%USERPROFILE%\backup" %%a in (*) do (
  11. set "wrdate=%%~ta"
  12. setlocal enabledelayedexpansion
  13. set "wrdate=!wrdate:~,10!"
  14. if "!wrdate!" equ "!date:~,10!" (echo xcopy "%%a" "C:\backup" /y)
  15. endlocal
  16. )
  17. pause
复制代码
回复 5# panda951
::和rem是什么意思?if "!wrdate!" equ "!date:~,10!" 又是什么意思?

评分

参与人数 1技术 +1 收起 理由
panda951 + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-4-2 22:26:05 | 显示全部楼层
回复 6# pcl_test


    不好意思我这2天上不到网 网络运营商有问题...
迟回复不好意思...
这个代码要去我学校实验 因为我的电脑没labuser (电脑没空间弄)

暂时写个已解决先
没解决我再改
发表于 2015-6-4 16:38:23 | 显示全部楼层
直接用robocopy试下,如果 是win7以上系统
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:45 , Processed in 0.019418 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表