Sys-Admin Forum

Как удалить файлы по маске и дате в скрипте bat?

Здравствуйте.
Использую bat скрипт:

net use n: \\192.168.0.X\backup mypassword /user:myuser
robocopy "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup" n:\ /s /z /mov /R:3 /LOG:c:\install\robocopy.log /MT:4 /tee 
forfiles /p "\\192.168.0.X\backup\" /d -8 /m *.bak /c "cmd /c del /q /f @file"
forfiles /p "\\192.168.0.X\backup\" /d -7 /m *.bakd /c "cmd /c del /q /f @file"
net use n: /d

Первая часть отрабатывает нормально в сетевой каталог попадают бэкапы, однако не удаляются с помощью forfiles, не могу понять где ошибка в синтаксисе.
При исполнении скрипта из cmd есть ошибки:

Ошибка: Неправильный параметр или аргумент - '/q'. Введите forfiles /? для получения справки по использованию

Параметр /q вроде как опция del, но почему-то воспринимается как опция forfiles. Где ошибка не могу понять.

Попробуй удалить не по сети, как у тебя \, ты за замапил сетевой диск n… с него удаляй, возможно ошибка из-за того, что forfiles не может сеть

В моем случае он не дает какой либо ошибки на сетевой путь, а ошибка в синтаксисе, но я на всякий случай перепроверил как вы рекомендуете через диск, та же ошибка:

net use n: \\192.168.0.X\backup mypassword /user:myuser
robocopy "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup" n:\ /s /z /mov /R:3 /LOG:c:\install\robocopy.log /MT:4 /tee
forfiles /p "n:\" /d -8 /m *.bak /c "cmd /c del /q /f @file"
forfiles /p "n:\" /d -7 /m *.bakd /c "cmd /c del /q /f @file"
net use n: /d

Виндовые программы могут ругаться на синтаксис в случае невозможности выполнения какой-либо операции… Так что вполне мог бы быть вариант решения)

Пробни так:

del /s /q /f n:*.bak

С расширением и путем думаю разберёшься