此批處理文件使用powershell獲取昨天的日期。
@echo Off
:: change -1 to 0 for todays date.
for /f "delims=" %%a in ('"powershell get-date((get-date).addDays(-1)) -uformat "%%Y%%m%%d" "') do set "d8=%%a"
echo yesterday was %d8%
pause
這是用於計算不同天數的VBS批處理腳本。您可以更改-1到0的今天,或-100 100天前,或+200 200天從現在開始,等
@echo off
call :routine today -1
set "date_dir=%yy%-%mm%-%dd%"
echo '%DATE_DIR%'
echo :: First delete all snapshots from this day last week
echo :: Create a file with all scheduled snapshots
pause
pause
call ec2-describe-snapshots|find /i "%DATE_DIR%">"%EC2_HOME%\Working\SnapshotsDOW.txt"
echo :: Delete snapshots for older backups
pause
pause
for /F "tokens=2" %%i in ('type "%EC2_HOME%\Working\SnapshotsDOW.txt" ') do call ec2-delete-snapshot "%%i"
:: Now create a snapshot for every attached volume to every instance
:: Create a file with all attached volumes
::call ec2-describe-volumes|find /i "attached">"%EC2_HOME%\Working\ActiveVolumes.txt"
echo :: Create a file with all instances
pause
pause
call ec2-describe-instances|find /i "TAG"|find /i "Name">"%EC2_HOME%\Working\InstanceNames.txt"
echo :: Create snapshots of all attached volumes
pause
pause
for /F "tokens=2,3" %%d IN (' type "%EC2_HOME%\Working\ActiveVolumes.txt" ') do for /F "tokens=3,5*" %%a IN (' type "%EC2_HOME%\Working\InstanceNames.txt" ') do if %%a EQU %%e call ec2-create-snapshot "%%d" -d "%DATE_DIR%: Daily Backup for %%b (VolID:%%d InstID:%%e)"
echo Done
pause
goto :EOF
:routine
setlocal
set date1=%1
set qty=%2
set separator=%~3
if /i "%date1%" EQU "TODAY" (set date1=now) else (set date1="%date1%")
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,%date1%)
echo>>"%temp%\%~n0.vbs" d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_
echo>>"%temp%\%~n0.vbs" right(100+month(s),2)^&_
echo>>"%temp%\%~n0.vbs" right(100+day(s),2)^&_
echo>>"%temp%\%~n0.vbs" d
for /f %%a in ('cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a
del "%temp%\%~n0.vbs"
endlocal& (
set "YY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "daynum=%result:~-1%"
)
set "day=%YY%%separator%%MM%%separator%%DD%"
這不是簡單計算零1天純批次。用於計算日期的VBS腳本是可靠和強大的 - 或者是一個PowerShell腳本。 – foxidrive
好的。如果可以通過編輯將它們添加到您的問題中,我需要查看'ec2-describe-snapshots'和'「%DATE_DIR%」'的輸出。 – foxidrive