15Jul
Ha bizonyos Windows-fájlokat( például programokat vagy szó dokumentumokat) próbál frissíteni, amíg azok használatban vannak, megkapja a szabványos "hozzáférés megtagadva, fájl használatban" hibát. Míg a mögöttes érvelés nyilvánvaló, nagyon bosszantó lehet, ha frissítenie kell egy kis futtatható fájlt, amelyet egy másik felhasználó jelenleg használ. Ezekben a helyzetekben többek között az alábbi lehetőségek állnak rendelkezésre, melyek mindegyike értékes időt tölt:
- Nyomon kövesse és kapcsolatba lépjen azokkal a felhasználókkal, akik jelenleg használják a fájlt, mondják el nekik, hogy zárják le / mentsék meg munkájukat stb.majd alkalmazza a frissítést.
- Ne alkalmazza azonnal a frissítést, és csak ne felejtse el ezt később, amikor a felhasználók nincsenek a rendszerben.
- Programozza be néhány segédprogramot, hogy cserélje ki a következő újraindításkor.
Nos, van egy másik megoldásunk az Ön számára: egy parancsfájl, amelyet a Send To( Küldés) menüben hív meg, amely a következőket tartalmazza:
- Megpróbálja törölni a régi fájlt.
- Ha a régi fájl zárolva van, a szkript 20 másodpercet vár. Lépjen az 1. lépésre.
- Ha a régi fájl nincs lezárva, a régi fájlt felváltja az új fájl. Lépjen a 4. lépésre.
- Opcionálisan jelentkezzen ki a folyamat befejezésekor.
Így kapja meg a helyettesítő parancsot mozgásban, és a szkript gondoskodik a többiről. Ez segít elkerülni a felhasználók nyomon követését vagy szükségtelen segédprogramokat a rendszeren.
Beállítás és használat
A szkript bárhol elhelyezhető a rendszeren. Ezután mindössze annyit kell tennie, hogy hozzon létre egy parancsikont a SendTo mappájába:
A helyreállítási folyamat elindításához válassza ki a régi fájlt és az új fájlt, majd hívja a Küldés opciót a jobb egérgombbal az régi fájl / fájl helyére.
A parancsfájl pontosan megmutatja, hogy mi fog történni, és megadja neked a lehetőséget, hogy a lecserélés után kilépjen.
A szkript folyamatosan megpróbálja törölni a régi fájlt, miközben néhány másodpercig várakozik a próbálkozások között.
Mindössze annyit kell tennie, hogy a folyamat fut, és amikor minden felhasználó ki van kapcsolva, a fájl helyére kerül.
Biztosítékok
A szkript néhány beépített biztosítékkal rendelkezik:
- A régi fájl és az új fájl egyértelműen bemutatott, így pontosan tudja, mi fog történni.
- A parancsablakot bármikor bezárhatja, hogy leállítsa a műveletet( természetesen feltételezve, hogy a cserét már nem hajtotta végre).
- A parancsfájl biztosítja, hogy csak két fájlt választott ki a Küldés parancsra. Ha például 1 vagy 3 fájlt választ ki, értesítést kap, és semmi sem fog történni.
A szkript
@ECHO OFF TITLE A zárolt fájl cseréje ECHO Cserélje a zárolt fájlt ECHO Írta: Jason Faulkner ECHO SysadminGeek.com ECHO.VISSZHANG.SETLOCAL EnableExtensions REM Validation. SET Hiba = 1 IF{ % 2} =={ }( ECHO Két fájlt kell kijelölni a kicserélés futtatásához GOTO End) IF NOT{ % 3} =={ }( ECHO Több mint 2 fájlt választottak ki, így nem vagyokGOTO End) SET Error = 0 SET OldFile = "% ~ f1" SET NewFile = "% ~ f2" SET LogOffWhenDone = 0 REM Mutassa be, mi fog történni, így esélyt adhat a lemondásra. ECHO régi fájl:% OldFile% ECHO --------- ECHO Új fájl:% NewFile% ECHO.ECHO A régi fájlt az új fájl helyett törölheti, ha bezárja. VISSZHANG.REM kijelentkezés. Ha ezt nem szeretné látni, törölheti ezeket a sorokat. ECHO Automatikusan jelentkezzen ki, amint a csere folyamat befejeződött? ECHO Írja be az "Y" -t, hogy automatikusan jelentkezzen be, vagy írjon be valamit, hogy ne. SET / P LogOffWhenDone =: DoReplace DEL / F / Q% OldFile% HA NEM OLYAN% OldFile%( MOVE% NewFile%% OldFile% ECHO fájl sikeresen kicserélve GOTO End) ECHO.ECHO A régi fájl még mindig zárva van. Várjon néhány percet, hogy próbálkozzon újra. TIMEOUT / T 20 GOTO DoReplace: Vége IF{ % Error%} =={ 1}( ECHO Használati utasítás: ECHO 1. Válassza ki a két fájlt a Windows Intézőben: ECHO 2. Jobb egérgombbal kattintson a régi fájlra, Cserélje le a zárolt fájlt ECHO Az ECHO A fájlt, amelyre a jobb kattintással felcserélik, a másik kiválasztott fájllal helyettesíthető ECHO Az ECHO leállítása anélkül, hogy bármit megtenné Nyomja meg bármelyik gombot a bezáráshoz TIMEOUT / T 15) IF / I{ % LogOffWhenDone%} =={Y}( ECHO Az ECHO lehetőség a kijelentkezés befejezése után ECHO A kijelentkezés rövid időn belül ki lesz jelentkezve SHUTDOWN / L) ENDLOCALLinkek
Letöltés ReplaceFile Script a SysadminGeek.com webhelyről