Nej, en batchfil kan inte direkt återuppta exekveringen från exakt samma punkt i en annan batchfil efter ett Windows 7 -systemstart eller avstängning. Batchfiler är inte utformade för denna typ av tillstånd. De tolkas rad för rad varje gång de kör.
För att simulera detta beteende måste du implementera en annan strategi:
1. Använda en tillfällig fil för att spåra framsteg:
Denna metod är den mest enkla. Din första batchfil skriver sitt nuvarande tillstånd (t.ex. radnumret den är på eller en markör som indikerar ett specifikt steg) för en tillfällig fil. Den andra batchfilen läser sedan den här filen för att avgöra var den ska återupptas.
`` `Batch
-batch_file_1.bat-
@Cho Off
Echo startar ...> framsteg.txt
Echo -behandling Steg 1>> Progress.txt
::... några kommandon ...
Echo -behandling Steg 2>> Progress.txt
::... fler kommandon ...
Echo -bearbetning Steg 3>> Progress.txt
::... ännu fler kommandon ...
echo slutade>> framsteg.txt
del framsteg.txt
-batch_file_2.bat-
@Cho Off
om existerar framsteg.txt (
för /f "tokens =*" %% a i (framsteg.txt) do (
eko %% a
::Baserat på innehållet i %% a, bestämmer du vilken del du ska fortsätta från
Om "%% A" =="Bearbetning Steg 2" (
::... återuppta behandlingen från steg 2 ...
)
)
del framsteg.txt
) annars (
Echo ingen framstegsfil hittades. Från början.
::... börja från början ...
)
`` `
2. Använda ett mer robust skriptspråk:
För mer komplexa scenarier eller bättre felhantering, överväg att använda ett kraftfullare skriptspråk som PowerShell. PowerShell har inbyggda mekanismer för att spara och återställa tillståndet för ett manus.
3. Extern databas/filsystem:
För extremt komplexa batchprocesser kan du överväga att använda en databas (som SQLite) eller avancerade filsystemtekniker för att lagra och hantera tillståndsinformationen mer effektivt och pålitligt.
Viktiga överväganden:
* Felhantering: Lägg till robust felhantering till ditt skript. Vad ska hända om den tillfälliga filen är skadad eller saknas?
* fillåsning: Om flera instanser av dina batchfiler kan köras samtidigt måste du lägga till fillåsningsmekanismer för att förhindra datakorruption.
* Komplexitet: Lösningens komplexitet beror på hur mycket tillstånd som behöver bevaras och komplexiteten i din batchfils logik.
Kort sagt kan du inte direkt "återuppta" en batchfil som ett program med minne, men du kan simulera det beteendet med externa filer eller en mer sofistikerad skriptstrategi. Det första exemplet ger en grundläggande illustration; Du kommer sannolikt att behöva anpassa den betydligt beroende på dina specifika behov.