window bat备份文件与删除文件

备份文件

@echo off
rem 获取当前备份时间
set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
set folder=%YYYYmmdd%_%hhmmss%
echo ######################当前时间: %folder%######################
rem 设定要备份的文件夹
set fromFolder=你的要备份的文件夹\*.*
echo ######################工程文件夹: %fromFolder%######################
rem 设定备份文件夹的位置
set toFolder=你的备份文件夹\%folder%\
echo ######################备份文件夹: %toFolder%######################
md %toFolder%
echo ######################开始备份工程源代码######################
rem 进行备份操作
xcopy  %fromFolder% %toFolder% /s /e /c /y /h /r
pause

删除备份文件

@echo off
rem 根据自己情况设定要删除备份的文件夹
set backupFolder=你的folder位置
set backupFiles=你的folder位置\*.*
echo ######################请选择要删除备份的操作######################
echo ----------------------0、输入数字0并按回车,删除全部备份----------------------
echo ----------------------1、输入数字1并按回车,删除一周前备份----------------------
echo ----------------------2、输入数字2并按回车,删除半个月前备份----------------------
echo ----------------------3、输入数字3并按回车,删除一个月前备份----------------------
echo ----------------------4、输入任意文字并按回车,无任何操作退出程序----------------------
echo.
echo 请选择要执行的操作:
set /p num=

rem 删除全部的备份,包括备份根目录
if "%num%"=="0" (
echo.
del /f /s /q %backupFiles%
cd %backupFolder%
rd /s /q  %backupFolder%
pause
goto again
)

rem 删除一周前的备份
if "%num%"=="1" (
echo.
forfiles /p %backupFolder%  /s /m *.* /d -7 /c "cmd /c del /s/q @path"
for /f "delims=" %%a in ('dir /ad /b /s %backupFolder%^|sort /r') do (
  rd "%%a">nul 2>nul && echo 删除目录 - %%a
)
pause
goto again
)

rem 删除半个月前的备份
if "%num%"=="2" (
echo.
forfiles /p %backupFolder% /s /m *.* /d -15 /c "cmd /c del /s/q @path"
for /f "delims=" %%a in ('dir /ad /b /s %backupFolder%^|sort /r') do (
  rd "%%a">nul 2>nul && echo 删除目录 - %%a
)
pause
goto again
)

rem 删除一个月前的备份
if "%num%"=="3" (
echo.
forfiles /p %backupFolder% /s /m *.* /d -30 /c "cmd /c del /s/q @path"
for /f "delims=" %%a in ('dir /ad /b /s %backupFolder%^|sort /r') do (
  rd "%%a">nul 2>nul && echo 删除目录 - %%a
)
pause
goto again
)

pause

注意事项

1,cmd输出窗口乱码问题

保存bat文件的时候把编码格式由UTF-8转为ANSI即可

2,xcopy过程中出现“无效参数个数”问题

Dos下不支持长文件名,只支持8.3.格式的文件名,把前后里边有空格的参数加引号即可,例如:"c:\program files" "........"

后续继续补充。。。。。。。。。。。。

你可能感兴趣的:(bat,window,cmd,bat,window)