Запланированная задача Robocopy завершается с ошибкой «Недостаточно ресурсов памяти» - PullRequest
0 голосов
/ 26 марта 2020

Мой пакетный скрипт robocopy был успешно запущен в командной строке, но тот же файл bat не удалось запустить при запуске из планировщика задач. Сценарий был запущен, но вместо копирования файлов robocopy вернул сообщение об ошибке «Недостаточно ресурсов памяти». Команды, запущенные в командной строке для сценария, были идентичны, но поведение было необъяснимо другим.

1 Ответ

0 голосов
/ 26 марта 2020

Robocopy и Windows Task Scheduler имеют странные необъяснимые проблемы при взаимодействии с пробелами в именах путей. В планировщике задач я указывал полный путь к пакетному сценарию и использовал опцию «start in» в диалоговом окне «Edit Actions settings», которая, по-видимому, была основным источником ошибки нехватки памяти. При тестировании попытка использовать полный путь к сценарию без диалогового окна параметров «Пуск в» не работала. Кроме того, цитирование имени пути в интерфейсе «Редактировать действие» привело к ошибке «каталог не найден»

Решение для диалогового окна «Редактировать действие» в планировщике задач:

  • Программа / сценарий должна иметь значение cmd
  • Отредактируйте Начать с (необязательно) Настройки действия для запланированной задачи, чтобы указать папку с вашим файлом bat. Это не нуждается в кавычках
  • Добавьте следующие аргументы в Добавить аргументы (необязательно) /c start myscript.bat
    • Не ставьте пробелы в летучей мыши имя сценария

Решение для путей RoboCopy с пробелами в имени:

  • Не включать конечные обратные слеши в имени пути
  • Используйте двойные кавычки, чтобы заключить любые имена путей в команду robocopy и включить завершающий пробел перед последней цитатой.
    • например, robocopy "C:\My Share\My Folder With Spaces " "E:\My Backup " /E...

Другие примечания:

  • Добавить EXIT в конце файла bat в не забудьте закрыть окно консоли после успешного завершения. start и / c не приводит к автоматическому закрытию robocopy.
...