Домашня » як » Легко замінити заблокований файл, як тільки він стане розблоковано

    Легко замінити заблокований файл, як тільки він стане розблоковано

    Якщо ви намагаєтеся оновити певні файли Windows (наприклад, програми або текстові документи) під час їх використання, ви отримаєте стандартну помилку "заборонений доступ, файл використовується". Хоча міркування цього очевидні, це може бути дуже дратує, якщо вам потрібно оновити невеликий виконуваний файл, який зараз використовується іншим користувачем. У таких ситуаціях ви маєте, серед іншого, такі варіанти вибору, які займають ваш цінний час:

    • Відстежуйте користувачів і контактуйте з користувачами, які зараз використовують цей файл, скажіть їм, щоб вони закривали / зберігали їх роботу і т.д., а потім застосовували оновлення.
    • Не застосовуйте оновлення відразу і не забувайте робити це пізніше, коли користувачі не входять до системи.
    • Заплануйте деяку утиліту замінити її на наступній перезавантаженні.

    У нас є інше рішення: скрипт, який викликається за допомогою меню "Надіслати", яке виконує наступне:

    1. Спроба видалити старий файл.
    2. Якщо старий файл заблоковано, сценарій очікує 20 секунд. Перейдіть до кроку 1.
    3. Якщо старий файл не заблоковано, старий файл замінюється новим. Перейдіть до кроку 4.
    4. За бажанням вийдіть з системи після завершення процесу.

    Таким чином, ви отримуєте тільки переміщення команди заміни, і сценарій піклується про решту. Це допоможе вам уникнути відстеження користувачів або встановлення непотрібних утиліт у вашій системі.

    Налаштування та використання

    Сценарій може бути розміщений в будь-якому місці вашої системи. Тоді вам потрібно лише створити ярлик у папці SendTo:

    Щоб запустити процес заміни, виберіть старий файл і новий файл, а потім викличте параметр "Надіслати", клацнувши правою кнопкою миші на старий файл / файл для заміни.

    Сценарій відображатиме саме те, що відбудеться, і надасть вам можливість вийти з системи після завершення заміни.

    Сценарій буде постійно намагатися видалити старий файл, очікуючи кілька секунд між спробами.

    Все, що вам потрібно зробити, це запустити процес, і коли всі ваші користувачі будуть відсутні, файл буде замінено.

    Гарантії

    У сценарії є кілька вбудованих гарантій:

    • Старий файл і новий файл чітко представлені, так що ви точно знаєте, що буде.
    • Ви можете закрити вікно команд у будь-який час, щоб зупинити дію (звичайно, припускаючи, що заміна вже не була виконана).
    • Сценарій забезпечить вибір лише двох файлів під час виклику команди Send To. Якщо вибрати, наприклад, 1 або 3 файли, ви отримаєте повідомлення з повідомленням і нічого не станеться.

    Сценарій

    @ECHO OFF TITLE Замінити заблокований файл ECHO Замінити заблокований файл ECHO Автор: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. Перевірка SETLOCAL EnableExtensions REM. SET Error = 1 IF % 2 ==  (ECHO Два файли повинні бути обрані для запуску заміни. GOTO End) IF NOT % 3 ==  (ECHO Більше 2 файлів було вибрано, тому я не GOTO End) SET Помилка = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Покажіть, що станеться, щоб у вас була можливість скасувати. ECHO Old Файл:% OldFile% ECHO --------- ECHO Новий файл:% NewFile% ECHO. ECHO Ви можете скасувати заміну старого файлу на новий файл, закривши його зараз. ECHO. REM Вийти з запиту. Якщо ви не бажаєте бачити це, ви можете видалити ці рядки. ECHO Автоматично виходити з системи після завершення процесу заміни? ECHO Введіть 'Y', щоб автоматично вийти з системи або ввести будь-що інше. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% Старий файл% IF NOT EXIST% OldFile% (MOVE% NewFile%% OldFile% ECHO файл успішно замінено. GOTO End) ECHO. ECHO Старий файл залишається заблокованим. Зачекайте кілька секунд, щоб повторити спробу. TIMEOUT / T 20 GOTO DoReplace: End IF % Error% == 1 (ECHO Інструкції для використання: ECHO 1. Виберіть два файли в Провіднику Windows. Замінити заблокований файл ECHO Файл, на який ви клацнули правою кнопкою миші, буде замінено іншим вибраним файлом. ECHO. ECHO Зупинка без будь-яких дій. Натисніть будь-яку клавішу, щоб закрити. Y (ECHO. Вибрано опцію ECHO для виходу з системи після завершення. ECHO Ви незабаром вийдете з системи. SHUTDOWN / L) ENDLOCAL 

    Посилання

    Завантажити сценарій ReplaceFile з SysadminGeek.com