Ако се опитате да актуализирате определени файлове на Windows (например програми или текстови документи), докато се използват, получавате стандартната грешка "отказ достъп, файл е в употреба". Докато мотивите зад това са очевидни, може да бъде доста досадно, ако трябва да актуализирате малък изпълним файл, който в момента се използва от друг потребител. В тези ситуации имате, между другото, следните избори, всички от които заемат ценното ви време:
- Проследявайте и се свържете с потребителите, които понастоящем използват файла, кажете му да затвори / запази работата си и т.н. и след това да приложи актуализацията.
-
Не прилагайте незабавно актуализацията и не забравяйте да го направите по-късно, когато потребителите не са в системата.
- Наречете програма, за да я замените при следващото рестартиране.
Е, имаме още едно решение за вас: скрипт, който извиквате чрез менюто Изпращане до, което прави следното:
- Опитва се да изтрие стария файл.
-
Ако старият файл е заключен, скриптът изчаква 20 секунди. Преминете към стъпка 1.
- Ако старият файл не е заключен, старият файл се заменя с новия файл. Преминете към стъпка 4.
- Ако е необходимо, излезте, след като приключите.
По този начин можете да получите заместващата команда в движение и сценарият се грижи за останалите. Това може да ви помогне да избегнете проследяването на потребителите или да инсталирате ненужни помощни програми на вашата система.
Настройка и използване
Сценарият може да се постави навсякъде във вашата система. След това всичко, което трябва да направите, е да създадете пряк път към него в папката SendTo:
За да стартирате процеса на замяна, изберете стария файл и нов файл и след това извикайте опцията Изпращане до, като щракнете с десния бутон върху стария файл / файл, който да бъде заменен.
Предпазни мерки
Сценарият има няколко вградени защити:
- Старият файл и новият файл са ясно представени, за да знаете точно какво ще се случи.
- Можете да затворите командния прозорец по всяко време, за да спрете действието (разбира се, ако подмяната вече не е извършена).
- Скриптът ще ви гарантира, че сте избрали само два файла, когато извикате командата "Изпращане към". Ако изберете например 1 или 3 файла, ще получите известие и нищо няма да се случи.
Скриптът
@ECHO OFF TITLE Replace Locked File ECHO Replace Locked File ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Validation. SET Error=1 IF {%2}=={} ( ECHO Two files must be selected to run the replace. GOTO End ) IF NOT {%3}=={} ( ECHO More than 2 files were selected so I am not sure what to do. GOTO End ) SET Error=0 SET OldFile='%~f1' SET NewFile='%~f2' SET LogOffWhenDone=0 REM Show what will happen so you have a chance to cancel out. ECHO Old File: %OldFile% ECHO --------- ECHO New File: %NewFile% ECHO. ECHO You can cancel replacing the Old File with the New File by closing now. ECHO. REM Log off prompt. If you do not want to see this, you can delete these lines. ECHO Automatically log off once the replace process has completed? ECHO Enter 'Y' to automatically log off or enter anything else to not. SET /P LogOffWhenDone=:DoReplace DEL /F /Q %OldFile% IF NOT EXIST %OldFile% ( MOVE %NewFile% %OldFile% ECHO File replaced successfully. GOTO End ) ECHO. ECHO The Old File is still locked. Waiting a few moments to try again. TIMEOUT /T 20 GOTO DoReplace:End IF {%Error%}=={1} ( ECHO Instructions for use: ECHO 1. Select the two files in Windows Explorer. ECHO 2. Right click on the Old File and go Send To - Replace Locked File ECHO. ECHO The file you right clicked on will be replaced with the other selected file. ECHO. ECHO Stopping without doing anything. Press any key to close. TIMEOUT /T 15 ) IF /I {%LogOffWhenDone%}=={Y} ( ECHO. ECHO Option to Log Off when completed was selected. ECHO You will be logged off shortly. SHUTDOWN /L ) ENDLOCAL
звена
Изтегляне на ReplaceFile Script от SysadminGeek.com