Некоторые причины rmdir
могут не работать:
- Нет разрешений
- Каталог содержит файлы.
- Это текущий рабочий каталог одного или нескольких процессы.
- Процесс заблокирован.
По некоторым причинам mkdir
может произойти сбой:
- Нет разрешений
- Каталог уже существует.
Сценарий OP пытается создать каталог с именем "Temp" в любом %CD%
для процесса, выполняющего этот сценарий. Если есть другие процессы, которые также запускают этот сценарий, или те, которые по той или иной причине используют один и тот же путь %CD%\Temp
, могут возникнуть сбои при создании или удалении этого пути.
It распространен в системах сборки, поскольку существует множество параллельных процессов и потоков, выполняющих различные программы / сценарии в различных рабочих каталогах. С точки зрения любого экземпляра файла cmd
, любой путь, относительный %CD%
, является фактически случайным. Все системы компоновки нисходящего CI предоставляют переменные среды, которые такие программы / сценарии могут использовать для правильной ориентации относительно известной сборки root некоторой формы, часто называемой чем-то вроде BuildRoot
.
Но реальная проблема Вот как сценарии OP обрабатывают управление временными каталогами. Они просто недостаточно надежны для совместного использования общего временного каталога.
Я бы добавил, что хорошая система сборки CI предоставляет некоторую форму временного каталога для процесса / потока, который программирует / скрипты можно использовать без необходимости какого-либо управления каталогами.