У меня есть несколько скриптов, которые должны синхронизировать папку с сетевого сервера, на локальный сервер терминалов и, наконец, в% LOCALAPPDATA%. Мне нужно сначала проверить, синхронизируется ли папка (это делается путем создания временного COPYING.TXT на сервере) и ждать, пока это не будет удалено, затем нажмите кнопку% LOCALAPPDATA%.Подождите, пока файл будет удален, а затем скопируйте папку
Что-то вроде этого:
- Серверный скрипт выполняется, который синхронизирует свою папку для всех моих серверов терминалов.
- Создает временный файл COPYING.TXT, который указывает, что синхронизация выполняется. Как только синхронизация завершена, сценарий удаляет COPYING.TXT
- Если кто-то вошел во время синхронизации, мне нужен сценарий, чтобы ждать, пока COPYING.TXT не будет удален. IE синхронизируется, а затем возобновляет локальную синхронизацию % LOCALAPPDATA%.
do {
cp c:\folder\program $env:LOCALAPPDATA\
} while (!(test-path c:\folder\COPYING.txt))
(Так что копирует папку, пока файл не существует, но я не думаю, что выходит из чисто)
Или:
while (!(test-path c:\folder\COPYING.txt)) {
cp c:\folder\program $env:LOCALAPPDATA\ -recurse -force
if (!(test-path c:\folder\program)) {return}
}
Но этот сценарий завершает работу если существует COPYING.TXT. Я думаю, мне нужно создать функцию и вставить эту функцию внутри себя или вложенный цикл while, но это начинает заставлять мою голову болеть.
@ user3317623 У меня было какое-то время для холодной пресс кофе и хороший думать, и я нашел решение, однако я не могу ответить на мой собственный вопрос :( – user3317623
функция задачи { в то время (тест-путь с.: \ папка \ COPYING.txt) {сон -seconds 1} ф с: \ папка \ программа $ ENV: LOCALAPPDATA \ -recurse -force выход } задача – user3317623