Bat файл MOVE не удается из-за другого дескриптора процесса - PullRequest
0 голосов
/ 26 мая 2011

У меня есть bat-файл, являющийся частью более крупной системы обслуживания, которая работает по ночам, выполняет некоторые вспомогательные операции, обновляет SVN и т. Д. Часть этого включает перемещение / удаление файлов, однако иногда это не удается из-за другого освобождение дескриптора файлов / каталогов для перемещения. Есть ли способ заставить файл BAT переопределить любые существующие маркеры и продолжить MOVE? Я могу думать только о методе поиска с использованием ProcessExplorer / Assassin - хотя я не уверен, что это сработает. В качестве альтернативы можно «спать», а затем повторить попытку, если это не удалось в первый раз, хотя это будет делом удачи, а не решением основной проблемы. Любые идеи / предложения высоко ценится. Спасибо.

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Robocopy имеет функцию перемещения и может ожидать ошибки

0 голосов
/ 26 мая 2011

Вот несколько вещей, которые я сделал в подобных ситуациях:

  • Перед командой move убедитесь, что другие потоки сценариев CD вне целевого каталога.
  • Используйте robocopy (из Resource Kits ) с параметрами, такими как retry /r:3 и wait /w:5.
  • Сценарий первого действия как COPY, чтобы скрипт мог продолжать работать, а затем в скрипте выполните удаление в старом / ненужном месте.
  • Как вы уже упоминали, создайте небольшой цикл повтора, используя IF ERRORLEVEL , чтобы проверить успешность команды MOVE.
...