Z łatwością wymień zablokowany plik, gdy zostanie odblokowany
Jeśli spróbujesz zaktualizować niektóre pliki systemu Windows (takie jak programy lub dokumenty tekstowe), gdy są one używane, otrzymasz standardowy błąd "odmowa dostępu, plik jest w użyciu". Chociaż rozumowanie jest oczywiste, może być dość irytujące, jeśli musisz zaktualizować mały plik wykonywalny, który jest aktualnie używany przez innego użytkownika. W takich sytuacjach masz między innymi następujące opcje, z których wszystkie podejmują cenny czas:
- Prześledź i skontaktuj się z użytkownikami, którzy aktualnie używają pliku, powiedz im, aby zamknął / zapisz ich pracę itp., A następnie zastosuj aktualizację.
- Nie stosuj aktualizacji natychmiast i pamiętaj, aby zrobić to później, gdy użytkownicy nie są w systemie.
- Zaplanuj trochę narzędzia, aby zastąpić je przy następnym uruchomieniu.
Mamy dla Ciebie inne rozwiązanie: skrypt wywoływany za pomocą menu Wyślij do, który wykonuje następujące czynności:
- Próbuje usunąć stary plik.
- Jeśli stary plik jest zablokowany, skrypt czeka 20 sekund. Przejdź do kroku 1.
- Jeśli stary plik nie jest zablokowany, stary plik zostanie zastąpiony nowym plikiem. Przejdź do kroku 4.
- Opcjonalnie wyloguj się po zakończeniu procesu.
W ten sposób otrzymujesz po prostu polecenie replace w ruchu, a skrypt zajmuje się resztą. Może to pomóc w uniknięciu śledzenia użytkowników lub konieczności instalowania niepotrzebnych narzędzi w systemie.
Konfiguracja i użytkowanie
Skrypt można umieścić w dowolnym miejscu w systemie. Następnie wystarczy utworzyć skrót do niego w folderze SendTo:
Aby rozpocząć proces zamiany, wybierz stary plik i nowy plik, a następnie wywołaj opcję Wyślij do, klikając prawym przyciskiem myszy stary plik / plik do zastąpienia.
Skrypt wyświetli dokładnie to, co się stanie i przedstawi ci opcję wylogowania po zakończeniu wymiany.
Skrypt będzie nieustannie próbował usunąć stary plik, czekając kilka sekund pomiędzy próbami.
Wystarczy, że proces zostanie uruchomiony, a ilekroć wszyscy użytkownicy się wycofają, plik zostanie zastąpiony.
Zabezpieczenia
Skrypt ma kilka wbudowanych zabezpieczeń:
- Stary plik i nowy plik są wyraźnie przedstawione, więc wiesz dokładnie, co się stanie.
- Możesz zamknąć okno poleceń w dowolnym momencie, aby zatrzymać działanie (oczywiście zakładając, że zamiana nie została już wykonana).
- Skrypt zapewni, że wybrałeś tylko dwa pliki po wywołaniu polecenia Wyślij do. Jeśli wybierzesz na przykład 1 lub 3 pliki, otrzymasz wiadomość z powiadomieniem i nic się nie wydarzy.
Scenariusz
@ECHO WYŁĄCZ TYTUŁ Zastąpienie Zablokowanego pliku ECHO Wymień Zablokowany plik ECHO Napisane przez: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Validation. SET Error = 1 IF % 2 == (ECHO Należy wybrać dwa pliki, aby uruchomić zamianę GOTO End) JEŚLI NIE % 3 == (ECHO Wybrano więcej niż 2 pliki, więc nie jestem co zrobić, GOTO End) SET Error = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Pokaż, co się stanie, abyś miał szansę na anulowanie. Stary plik ECHO:% Stary plik% ECHO --------- Nowy plik ECHO:% NewFile% ECHO. ECHO Możesz anulować zastąpienie Starego pliku nowym plikiem, teraz zamykając. ECHO. Pytanie wylogowania REM. Jeśli nie chcesz tego widzieć, możesz usunąć te linie. ECHO Automatycznie wylogować się po zakończeniu procesu zamiany? ECHO Wpisz "Y", aby automatycznie wylogować się lub wprowadzić cokolwiek innego, aby nie. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% IF NOT EXIST% OldFile% (MOVE% NewFile%% OldFile% Plik ECHO został zastąpiony pomyślnie GOTO End) ECHO. ECHO Stary plik jest wciąż zablokowany. Czekam kilka chwil, aby spróbować ponownie. TIMEOUT / T 20 GOTO DoReplace: End IF % Error% == 1 (ECHO Instrukcja użytkowania: ECHO 1. Wybierz dwa pliki w Eksploratorze Windows ECHO 2. Kliknij prawym przyciskiem myszy stary plik i przejdź do opcji Wyślij do - Wymień Zablokowany plik ECHO ECHO Prawidłowo kliknięty plik zostanie zastąpiony innym wybranym plikiem ECHO ECHO Zatrzymanie bezczynności Naciśnij dowolny klawisz, aby zamknąć TIMEOUT / T 15) IF / I % LogOffWhenDone% == Y (ECHO. Opcja ECHO do wylogowania po wybraniu ECHO Niedługo wylogujesz się. SHUTDOWN / L) ENDLOCAL
Spinki do mankietów
Pobierz ReplaceFile Script z SysadminGeek.com