What is wrong with this script?

Copper Contributor



I am struggling to find a fix for this script. Can anyone help please?

Script's logic:

IF day of run is a Monday THEN

    YYYYMMDD = Friday before --  i.e. 3 days earlier

ELSE IF day of run is a Tuesday, Wednesday, Thursday, Friday, Saturday, or Sunday THEN

    YYYYMMDD = day before -- i.e. 1 day earlier



The error I am seeing the CMD windows:

>if 2 EQU 1 (set "days_to_subtract=3" ) else if 2 GTR 2 (set "days_to_subtract=1" ) .AddDays(-)') was unexpected at this time






for /F %%i in ('wmic path win32_localtime get dayofweek ^| findstr /r "[0-9]"') do set day=%%i


if %day% equ 1 (

set "days_to_subtract=3"

) else if %day% gtr 2 (

set "days_to_subtract=1"



for /F %%i in ('powershell Get-date -format "yyyyMMdd" -date (Get-date).AddDays(-%days_to_subtract%)') do set "previous_date=%%i"


echo %previous_date

2 Replies
best response confirmed by ikhan543 (Copper Contributor)

Hi @ikhan543


The following simple PowerShell script will return a date based on your script logic:

$dayOfWeek = (Get-Date).DayOfWeek

$previousDate = if ($dayOfWeek -eq 'Monday') {
} else {

Thank you Kevkelly. Nothing like getting a response from a human :)

The script I had was generated by ChatGPT as I don't know Windows scripting and needed a quick solution.