Дело в том, что вы хотите использовать расширенную функцию date
(Day Of Week), которой Windows не может управлять в DOS Batch.
Для этого я бы использовал сторонний двоичный файл date.exe
, который поставляется из мира Unix и работает на Windows: UnxUtils (это набор общих утилит GNU Unix, который работает на Windows).
Загрузите его отсюда (UnxUtils.zip).
Затем распакуйте его и удалите все файлы, кроме date.exe
Затем напишите командный файл следующим образом (при условии, что date.exe
находится в c:\
):
@ECHO OFF
REM Sunday is 0
for /f "delims=" %%a in ('c:\date.exe +%%w') do set DayOfWeek=%%a
if %DayOfWeek% == 0 (
cmd /c c:\path\to\exe\file.exe
) else (
echo Do Nothing
)
Вы можете поместить его в папку автозагрузки Windows и работать на всех версиях Windows, независимо от того, где вы находитесь в мире.
Также (намного лучше), в те дни, DOS Batch немного устарел. Поскольку вы говорите о Windows 8, я бы рассмотрел Powershell (при необходимости может быть вызван командным файлом):
$a = Get-Date
if($a.DayOfWeek -eq "Sunday") {
cmd /c c:\path\to\exe\file.exe
}
Здесь не нужен сторонний бинарный файл: Powershell - Powerfull;)