15Jul
Om du försöker uppdatera vissa Windows-filer( till exempel program eller orddokument) medan de används, får du standardfelet "åtkomst nekad, filen är i bruk".Medan resonemanget bakom detta är uppenbart, kan det vara ganska irriterande om du behöver uppdatera en liten körbar som för närvarande används av en annan användare. I dessa situationer har du bland annat följande val, som alla tar upp din värdefulla tid:
- Spåra ner och kontakta användarna som för närvarande använder filen, berätta för dem att stänga / spara jobbet etc. ochanvänd sedan uppdateringen.
- Använd inte uppdateringen omedelbart och kom ihåg att göra det senare när användare inte befinner sig i systemet.
- Planera något verktyg för att ersätta det vid nästa omstart.
Tja, vi har en annan lösning tillgänglig för dig: ett skript du anropar via menyn Skicka till, vilket gör följande:
- Tråder för att radera den gamla filen.
- Om den gamla filen är låst väntar manuset 20 sekunder. Gå till steg 1.
- Om den gamla filen inte är låst, ersätts den gamla filen med den nya filen. Gå till steg 4.
- Logga ut eventuellt när processen är klar.
På så sätt får du bara kommandot ersätta kommandot och skriptet tar hand om resten. Detta kan hjälpa dig att undvika att spåra användare eller behöva installera onödiga verktyg på ditt system.
Setup och användning
Skriptet kan placeras var som helst på ditt system. Då behöver du bara skapa en genväg till den i din SendTo-mapp:
För att starta ersättningsprocessen, välj den gamla filen och den nya filen och klicka sedan på alternativet Skicka till genom att högerklicka på den gamla filen / filen för som ska ersättas.
Skriptet visar exakt vad som ska hända och presenterar dig möjligheten att bli avloggad när ersättningen är klar.
Skriptet kommer kontinuerligt att försöka radera den gamla filen medan du väntar flera sekunder mellan försök.
Allt du behöver göra är att få processen igång och när alla dina användare är ute kommer filen att bytas ut.
Skyddskrav
Skriptet har ett par inbyggda skyddsåtgärder:
- Den gamla filen och den nya filen presenteras tydligt så du vet exakt vad som händer.
- Du kan när som helst stänga kommandofönstret för att stoppa åtgärden( naturligtvis förutsatt att ersättningen inte har utförts redan).
- Skriptet säkerställer att du bara har valt två filer när du anropar kommandot Skicka till. Om du t.ex. väljer 1 eller 3 filer får du ett meddelande och ingenting kommer att hända.
Skriptet
@ECHO OFF TITLE Byt ut låst fil ECHO Byt låst fil ECHO Skrivet av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKO.SETLOCAL EnableExtensions REM Validation. SET Error = 1 IF{ % 2} =={ }( ECHO Två filer måste väljas för att köra ersätt. GOTO Slut) OM INTE{ % 3} =={ }( ECHO Mer än 2 filer valdes så jag är inteSäkerställ vad du ska göra. GOTO Slut) SET Fel = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Visa vad som kommer att hända så att du har möjlighet att avbryta. ECHO Old File:% OldFile% ECHO --------- ECHO Ny fil:% NewFile% ECHO.ECHO Du kan avbryta ersättning av den gamla filen med den nya filen genom att stänga nu. EKO.REM Log off prompt. Om du inte vill se detta kan du radera dessa rader. ECHO Logga ut automatiskt när ersättningsprocessen har slutförts? ECHO Ange 'Y' för att automatiskt logga av eller ange något annat för att inte. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% Om ej existerat% OldFile%( Flytta% NewFile%% OldFile% ECHO Fil ersattes med framgång. GOTO Slut) ECHO.ECHO Den gamla filen är fortfarande låst. Väntar på några minuter att försöka igen. ECHO 1. Välj de två filerna i Utforskaren. ECHO 2. Högerklicka på den gamla filen och gå till -Byt ut låst fil ECHO. ECHO Den fil du högerklickade på kommer att ersättas med den andra valda filen. ECHO. ECHO Stoppar utan att göra något. Tryck på valfri knapp för att stänga. TIMEOUT / T 15) OM / I{ % LogOffWhenDone%} =={Y}( ECHO. ECHO Alternativ att logga av när du är klar vald. ECHO Du kommer att loggas av inom kort. SHUTDOWN / L) ENDLOCALLänkar
Hämta ReplaceFile Script från SysadminGeek.com