Автор Тема: Как удалить файлы по маске и дате в скрипте bat?  (Прочитано 123 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн squidw

  • Юзер
  • *
  • Сообщений: 2
  • Karma: +0/-0
    • Share Post
Здравствуйте.
Использую 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. Где ошибка не могу понять.

 

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8757
  • Karma: +121/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Re: Как удалить файлы по маске и дате в скрипте bat?
« Ответ #1 : Август 13, 2019, 05:27:06 pm »
Попробуй удалить не по сети, как у тебя  \\, ты за замапил сетевой диск n... с него удаляй, возможно ошибка из-за того, что forfiles не может сеть
дорогу осилит идущий...
......................
MCP, MCTS, RHCSA
......................
also aka xck...

Оффлайн squidw

  • Юзер
  • *
  • Сообщений: 2
  • Karma: +0/-0
    • Share Post
Re: Как удалить файлы по маске и дате в скрипте bat?
« Ответ #2 : Август 13, 2019, 06:30:06 pm »
В моем случае он не дает какой либо ошибки на сетевой путь, а ошибка в синтаксисе, но я на всякий случай перепроверил как вы рекомендуете через диск, та же ошибка:
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

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8757
  • Karma: +121/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Re: Как удалить файлы по маске и дате в скрипте bat?
« Ответ #3 : Август 13, 2019, 07:06:12 pm »
Виндовые программы могут ругаться на синтаксис в случае невозможности выполнения какой-либо операции... Так что вполне мог бы быть вариант решения)

Пробни так:

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

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


xx
PowerShell - удалить файлы из папки по маске

Автор sysadmin

0 Ответов
3541 Просмотров
Последний ответ Октябрь 27, 2016, 11:47:08 am
от sysadmin
xx
Linux - удалить файлы за текущий день

Автор sysadmin

0 Ответов
1667 Просмотров
Последний ответ Май 12, 2015, 12:44:39 pm
от sysadmin
xx
не могу удалить файлы на сервере linux debian gnu

Автор Nurlan777

1 Ответов
2675 Просмотров
Последний ответ Октябрь 17, 2012, 09:38:16 am
от sysadmin
xx
Bash удалить файлы с расширением, исключить если имя содержит слово

Автор sysadmin

0 Ответов
1352 Просмотров
Последний ответ Октябрь 10, 2016, 10:40:20 am
от sysadmin