使用xcopy 来实现
1、新建一个bat脚本
重命名文件为 windows_log_bak.bat 后缀也成修改为.bat
2、备份代码
xcopy参数:
#可在命令窗口执行这个命今,查看所有参数详细
xcopy /?
使用的参数:
/e:拷贝所有子目录,包括空子目录;
/I: 如果目标文件或目录不存在且拷贝的文件数多于一,则假设目标为目录;
/h:同时拷贝隐藏文件和系统文件
/y: 复制文件审核设置(不显示已有文件覆盖确认)
右键编辑脚本windows_log_bak.bat,放入代码。
@echo off
:: 设置字符集为UTF-8,命令窗口能正确显示中文字符。
chcp 65001 :: 时间参数定义
set "Y=%date:~,4%"
set "m=%date:~5,2%"
set "d=%date:~8,2%"
set "h=%time:~,2%"
set "mi=%time:~3,2%"
set "s=%time:~6,2%":: 判断备份文件夹是否存在,如果不存在则创建 if not exist "D:\windows_log_bak\bak_%Y%-%m%-%d%-%h%\" (mkdir "D:\windows_log_bak\bak_%Y%-%m%-%d%-%h%\"):: 使用xcopy命令复制文件夹(文件)执行备份操作
xcopy /E /I /Y /H "C:\Windows\System32\winevt\Logs" "D:\windows_log_bak\bak_%Y%-%m%-%d%-%h%\" :: 打印备份完成消息
echo 备份完成;echo 正在执行删除7天前文件...:: 开始执行删除7天前的文件
forfiles /p "D:\windows_log_bak\" /s /m *.* /d -7 /c "cmd /c del @path":: 打印文字提示
echo 删除完成;endlocal
pause
3、执行
右键以管理员身份运行
报错:Access denied
访问被拒绝,权限不够,右键以管理员运行就行