5 sätt att visa, schema radera eller flytta filer i nästa Windows-uppstart

2017-02-27 18:52:44
Huvud·Windows·5 sätt att visa, schema radera eller flytta filer i nästa Windows-uppstart

Filer som för närvarande öppnas eller används i Windows kan inte flyttas eller raderas förrän de är stängda. Merparten av tiden att stänga det tillhörande programmet skulle göra jobbet men ibland fungerar det fortfarande inte eftersom det är mappat till minnet eller skyddat av en annan process. För att lösa detta problem skulle de flesta av oss helt enkelt lita på en tredje parts programvara som FileASSASSIN, LockHunter, IObit Unlocker, BlitzBlank och etc som kan upptäcka låsta filer och försöka låsa upp dem för ytterligare åtgärder. Att låsa upp låsta filer har sin egen risk som kan orsaka kraschar i operativsystemet.

Den säkrare lösningen är att markera filen för radering vid nästa omstart och operativsystemet Microsoft Windows har gjort det enkelt för utvecklare eftersom det kommer med ett MoveFileEx API för att ta bort eller byta namn på / flytta filer nästa gång systemet startar upp. Denna uppgift utförs genom att läsa en registerpost som heter PendingFileRenameOperations som finns på HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager. Observera att registernyckeln PendingFileRenameOperations inte kommer att existera såvida det inte finns en pågående operation.

Om du inte gillar att röra med Windows-registret har vi här några gratis verktyg som kan hjälpa dig att läsa PendingFileRenameOperations-tangenterna och visa listan över väntande filoperationer. Vissa av dem har möjlighet att låta dig planera flyttning och radering av kommandon för nästa omstart. 1. PendMoves och MoveFile

PendMoves är ett enkelt kommandoradsprogram av Windows Sysinternals där det kan läsa PendingFileRenameOperations-tangenterna och visa listan över filer som antingen kommer att raderas eller flyttas till den nya målplatsen. Tomt mål visas som DELETE, annars kommer det att vara den nya platsen där källfilen flyttas till.

Eftersom PendMoves är ett kommandoradsprogram måste det köras från kommandotolken för att se resultaten, annars får du bara ett blinkande svart fönster som öppnas och stängs av sig själv. Tryck på WIN + R, skriv cmd i rutan Kör och klicka på OK. Byt till katalogen där pendmoves.exe finns och skriv filnamnet för att köra programmet.

En separat applikation som heter MoveFile som är bunden tillsammans med PendMoves i arkivet är att lägga till en post i PendingFileRenameOperations för att schemalägga en fil som ska raderas eller flyttas vid nästa Windows-start. Ange bara källan och destinationen för att flytta filen eller om du lämnar destinationen tom med två dubbla citat kommer källan att raderas.

Exempelkommandot nedan flyttar test.zip från C: \ till Raymond-användarkontans skrivbord.

C: \ movefile.exe c: \ test.zip c: \ raymond \ user \ desktop \ test.zip

Kommandot nedan planerar att ta bort test.zip-filen vid nästa Windows-start.

C: \ movefile.exe c: \ test.zip “”

Ladda ner PendMoves och MoveFile


2. WhyReboot

Om du föredrar ett mer användarvänligt verktyg som har ett grafiskt användargränssnitt, skulle WhyReboot vara ditt val. WhyReboot är ett litet och bärbart verktyg som visar en lista över pågående filoperationer och dessutom RunOnce-registernyckeln. RunOnce-registernyckeln är en instruktion för Windows att automatiskt köra ett specifikt program endast en gång under start och nyckeln tas bort när den har behandlat begäran.

Även om WhyReboot skapas för att avgöra om du ska starta om datorn när du uppmanas att göra det efter att ha installerat ett program eller uppdatering, är det fortfarande ganska långt ifrån att kunna göra det. WhyReboot kan inte berätta om en viktig kärndrivrutin eller DLL-fil har ersatts och kräver en omstart för att ladda, vilket ganska ofta ses i säkerhetsbaserad programvara som ett antivirusprogram.

Ladda ner WhyReboot


3. WMI VBScript

För administratörer eller programmerare som föredrar skript för flexibilitet vid implementering av automatisering hittade vi ett praktiskt WMI VBScript skriven av Tom Mills, en lösningsarkitekt med Microsoft Services. I grund och botten vad VBS-filen gör är att läsa och analysera PendingFileRenameOperations som visar resultatet i ett popup-fönster.

VBS-koden kan erhållas från den officiella Tom Mills MSDN-bloggsidan eller så kan du ladda ner skriptet nedan.

Ladda ner CheckPendingFileRenameOperations.vbs


4. MoveEx

Det finns två versioner av MoveEx, en är skapad av Alexander Frink som finns i Softpedia, den andra av Frank Westlake från ss64.net och vi presenterar den senare. Anledningen till att vi föredrar MoveEx av Frank framför Alexander är förmågan att radera en enskild post i PendingFileRenameOperations annat än att bara analysera och visa operationen.

Om du vill se PendingFileRenameOperations-posterna kör du bara applikationen på kommandoraden. För att radera en enskild PendingFileRenameOperations-post måste du lägga till / d tillsammans med det inmatningsnummer som visas när du kör MoveEx utan ett kommandoradsargument. Som du kan se från skärmdumpen ovan raderar det första kommandot alla poster i PendingFileRenameOperations och det andra kommandot som har en “/ d 003” raderar den tredje posten.

Lägga till en PendingFileRenameOperations-post med MoveEx är samma som MoveFile från Sysinternals som anger källan följt av mål. Om du lämnar målet tomt kommer Windows att schemalägga källfilen.

Ladda ner MoveEx


5. Lägg till eller ta bort manuellt PendingFileRenameOperations-inmatning

Det finns inga problem med att manuellt ta bort PendingFileRenameOperations-nyckeln från systemregistret men att lägga till en post är svårt eftersom det är ett REG_MULTI_SZ-värde inte den normala strängen eller DWORD. För att ta bort navigerar du helt enkelt till HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager i registret och tar bort nyckeln PendingFileRenameOperations.

För att lägga till en raderingspost, gå till HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ högerklicka i högra fönstret, gå till New, välj Multi-String Value och namnge det som PendingFileRenameOperations . Dubbelklicka på det nyligen skapade registervärdet och ange den fullständiga platsen för filen som börjar med \ ?? \ (till exempel \ ?? \ C: \ raymondcc.exe ) som du vill schemalägga för borttagning. Klicka på OK när du är klar. Högerklicka nu på PendingFileRenameOperations och välj Modifiera binära data . Du bör se ett antal siffror i värdedata. Ange fyra nollor "00 00" utan citat i slutet av hexsträngen och klicka på OK. Starta om datorn och filen kommer att raderas.

Konstigt är det så mycket enklare att schemalägga en flyttoperation på en fil under Windows-start med PendingFileRenameOperations om det jämförs med att ta bort eftersom det inte innebär att modifiera binära data i registret. Följ stegen ovan tills du har nått delen för att lägga till en värdedata i rutan Redigera flersträng. Du måste ange två sökvägar som är källan och målet. Ett exempel nedan kommer att flytta filen raymondcc.exe från C: \ source till c: \ target.

\ ?? \ C: \ källa \ raymondcc.exe
\ ?? \ C: \ mål \ raymondcc.exe

Redaktionen