Легко заменить заблокированный файл, как только он станет разблокированным
Если вы попытаетесь обновить некоторые файлы Windows (например, программы или текстовые документы) во время их использования, вы получите стандартную ошибку «доступ запрещен, файл используется». Хотя причины этого очевидны, это может раздражать, если вам нужно обновить небольшой исполняемый файл, который в данный момент используется другим пользователем. В этих ситуациях у вас есть, среди прочего, следующие варианты, которые занимают ваше драгоценное время:
- Отследить и связаться с пользователями, которые в настоящее время используют файл, сказать им, чтобы закрыть / сохранить свою работу и т. Д., А затем применить обновление.
- Не устанавливайте обновление немедленно и просто не забудьте сделать это позже, когда пользователи не в системе.
- Запланируйте какую-нибудь утилиту для замены при следующей перезагрузке.
Итак, у нас есть другое решение: скрипт, который вы вызываете через меню «Отправить», который выполняет следующие действия:
- Пытается удалить старый файл.
- Если старый файл заблокирован, сценарий ждет 20 секунд. Перейти к шагу 1.
- Если старый файл не заблокирован, старый файл заменяется новым. Перейти к шагу 4.
- При желании выйдите из системы после завершения процесса.
Таким образом, вы получаете только команду замены в движении, а скрипт позаботится обо всем остальном. Это может помочь вам избежать отслеживания пользователей или необходимости устанавливать ненужные утилиты в вашей системе.
Настройка и использование
Сценарий может быть размещен в любом месте вашей системы. Тогда все, что вам нужно сделать, это создать ярлык для него в папке SendTo:
Чтобы начать процесс замены, выберите старый файл и новый файл, а затем вызовите опцию Отправить, щелкнув правой кнопкой мыши на старый файл / файл для замены.
Сценарий точно покажет, что произойдет, и предоставит вам возможность выйти из системы после завершения замены..
Сценарий будет постоянно пытаться удалить старый файл, ожидая несколько секунд между попытками.
Все, что вам нужно сделать, это запустить процесс, и всякий раз, когда все ваши пользователи вышли, файл будет заменен.
защитные меры
Скрипт имеет пару встроенных средств защиты:
- Старый файл и новый файл четко представлены, чтобы вы точно знали, что произойдет.
- Вы можете закрыть командное окно в любое время, чтобы остановить действие (конечно, при условии, что замена еще не была выполнена).
- Сценарий будет гарантировать, что вы выбрали только два файла при вызове команды «Отправить». Если вы выберете, например, 1 или 3 файла, вы получите уведомление и ничего не произойдет.
Сценарий
@ECHO OFF TITLE Заменить заблокированный файл ECHO Заменить заблокированный файл ECHO Автор: Джейсон Фолкнер, ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Validation. Ошибка SET = 1 IF % 2 == (ECHO Для запуска замены необходимо выбрать два файла. GOTO End) IF NOT % 3 == (ECHO Было выбрано более 2 файлов, поэтому я не уверен, что делать. GOTO Конец) SET Ошибка = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Показать, что произойдет, чтобы у вас была возможность отменить операцию. ECHO Старый файл:% OldFile% ECHO --------- ECHO Новый файл:% NewFile% ECHO. ЭХО Вы можете отменить замену старого файла новым файлом, закрыв сейчас. ECHO. REM Выйти из системы. Если вы не хотите видеть это, вы можете удалить эти строки. ECHO Автоматический выход из системы после завершения процесса замены? ECHO Введите 'Y', чтобы автоматически выйти из системы, или введите что-либо еще, чтобы не выходить. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% IF NOT EXIST% OldFile% (MOVE% NewFile%% OldFile% ECHO Файл успешно заменен. GOTO End) ECHO. ЭХО Старый файл все еще заблокирован. Жду несколько минут, чтобы попробовать еще раз. TIMEOUT / T 20 GOTO DoReplace: End IF % Error% == 1 (ECHO. Инструкции по использованию: ECHO 1. Выберите два файла в проводнике Windows. ECHO 2. Щелкните правой кнопкой мыши по старому файлу и выберите «Отправить в» - Заменить заблокированный файл ECHO. ECHO Файл, по которому вы щелкнули правой кнопкой мыши, будет заменен другим выбранным файлом. ECHO. ECHO Остановка бездействия. Нажмите любую клавишу, чтобы закрыть. TIMEOUT / T 15) IF / I % LogOffWhenDone% == Y (ECHO. ECHO Возможность выхода из системы после завершения выбора. ECHO Вскоре вы выйдете из системы. SHUTDOWN / L) ENDLOCAL
связи
Скачать скрипт ReplaceFile с сайта SysadminGeek.com