Mentre stavo preparando degli script di amministrazione per Windows e per Linux, mi sono imbattuto nel seguente problema:
Come faccio a leggere il giorno della settimana (1-7=Lunedì-Domenica) ? Questo perchè volevo creare un file di log a rotazione settimanale del tipo “nomefile_[1-7].log”.
Su Unix/Linux mi sono trovato a scrivere nella shell i seguenti comandi:
DayOfWeekNum=`date +%w`
LOG_FILE=/var/log/updateTime_${DayOfWeekNum}.log
In Windows mi sono imbattuto in un problema quasi impossibile, il “porkaround” (leggi come schifoso “workaround”) a cui mi sono dovuto adeguare è il seguente:
@echo off
REM Create a temporary VBS script
set vbsfile=c:tempupdateTime.vbs
echo currentDate = Now>%vbsfile%
echo WeekDayNumber = Weekday(currentDate)>>%vbsfile%
echo Wscript.Echo WeekDayNumber>>%vbsfile%
REM Store output of vbs script in variables
for /f %%A in (‘cscript //nologo %vbsfile%’ ) do (
set DayOfWeekNum=%%A
)
del /s/q %vbsfile%
set LOG_FILE=c:logupdateTime_%DayOfWeekNum%.log
Bello vero ?
Meno male che esiste Linux!