REM 获取前一天日期作为备份文件夹名称
时间: 2024-05-12 11:13:43 浏览: 82
在 Bash 或 Windows 命令行中,可以使用以下命令获取前一天的日期并将其作为备份文件夹名称:
Bash:
```
backup_folder=$(date -d "yesterday" +%Y-%m-%d)
echo $backup_folder
```
输出:2022-01-01
Windows 命令行:
```
for /f "usebackq" %%i in (`powershell (get-date).AddDays(-1).ToString('yyyy-MM-dd')`) do set backup_folder=%%i
echo %backup_folder%
```
输出:2022-01-01
这些命令将前一天的日期格式化为“YYYY-MM-DD”字符串,并将其存储在名为“backup_folder”的变量中。您可以根据需要使用此变量来创建备份文件夹。
相关问题
帮我写一个批处理文件(bat文件),实现删除d:\My 文件夹下30天前生成的文件
当然可以。下面是一个简单的批处理脚本(.bat文件),它将删除D:\My 文件夹下30天前创建的文件。请注意,在实际使用之前,请确保备份重要数据,因为这个操作不可逆。
```batch
@echo off
setlocal enabledelayedexpansion
REM 定义日期变量,30天前的日期
set /A dateDiff=30
set /a today=%date:~10,4%-%date:~7,2%-%date:~4,2%
set /A thirtyDaysAgo=!today!-(!!dateDiff!!)
REM 设置目标路径
set folderPath=D:\My\
REM 获取当前目录下的所有文件,按时间排序
for /F "delims=" %%f in ('dir /B /OD /A:-D ^| findstr /I ".*">nul') do (
REM 检查文件是否在30天内创建
set fileDate=%%f
for /F "tokens=2 delims==" %%i in (' attrib +^h "%folderPath%%%fileDate%" ^| find "="') do set fileDate=%%i
if "!fileDate!" LSS %thirtyDaysAgo% (
echo 删除文件: !folderPath!%%f
DEL "%folderPath%%%fileDate%"
)
)
echo 操作完成。
pause
```
Windows服务器日志自动备份脚本
好的,以下是一个Windows服务器日志自动备份脚本的示例。请注意,这只是一个示例脚本,你需要根据自己的需要进行修改。
```batch
@echo off
setlocal
rem 备份文件夹路径
set BACKUP_DIR=C:\Backup
rem 要备份的日志文件夹路径
set SOURCE_DIR=C:\Logs
rem 备份文件名
set BACKUP_FILE=logs_%date:~4,2%%date:~7,2%%date:~10,4%.zip
rem 创建备份文件
powershell Compress-Archive -Path "%SOURCE_DIR%\*" -DestinationPath "%BACKUP_DIR%\%BACKUP_FILE%"
rem 删除旧备份文件
forfiles /p "%BACKUP_DIR%" /m logs_* /d -30 /c "cmd /c del @path"
endlocal
```
这个脚本将会把指定的日志文件夹打包成一个压缩文件,并保存到指定的备份文件夹路径中。备份文件名将根据当前日期自动生成。
此外,脚本还会删除30天前的旧备份文件,以保持备份文件夹的整洁。这里使用了Windows自带的`forfiles`命令来删除旧备份文件。
阅读全文