If-Koubou

Z łatwością wymień zablokowany plik, gdy zostanie odblokowany

Z łatwością wymień zablokowany plik, gdy zostanie odblokowany (Jak)

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:

  1. Próbuje usunąć stary plik.
  2. Jeśli stary plik jest zablokowany, skrypt czeka 20 sekund. Przejdź do kroku 1.
  3. Jeśli stary plik nie jest zablokowany, stary plik zostanie zastąpiony nowym plikiem. Przejdź do kroku 4.
  4. Opcjonalnie wyloguj się po zakończeniu procesu.

W ten sposób otrzymasz po prostu polecenie replace w ruchu, a skrypt zajmie 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życie

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ć akcję (oczywiście zakładając, że wymiana 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Ł Wymień Zablokowany plik Wymień ECHO Zablokowany plik ECHO Napisane przez: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Validation. SET Error = 1 JEŻELI % 2 ==  (ECHO Dwa pliki muszą zostać wybrane, 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, zamykając go teraz. 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 nadal zablokowany. Czekam kilka chwil, aby spróbować ponownie. TIMEOUT / T 20 GOTO DoReplace: End IF % Error% == 1 (ECHO Instrukcja użycia: ECHO 1. Wybierz dwa pliki w Eksploratorze Windows ECHO 2. Kliknij prawym przyciskiem myszy stary plik i wybierz Wyślij do - Zastąp Zablokowany plik ECHO ECHO Prawy 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 (opcja ECHO ECHO do wylogowania po wybraniu ECHO Niedługo wylogujesz się z programu SHUTDOWN / L) ENDLOCAL 

Spinki do mankietów

Pobierz ReplaceFile Script z SysadminGeek.com