| Nee, een batchbestand kan de uitvoering niet direct hervatten vanaf exact hetzelfde punt in een ander batchbestand nadat het Windows 7-systeem opnieuw is opgestart of afgesloten. Batchbestanden zijn niet ontworpen voor dit soort statuspersistentie. Elke keer dat ze worden uitgevoerd, worden ze regel voor regel geïnterpreteerd.
Om dit gedrag te simuleren, moet u een andere aanpak implementeren:
1. Een tijdelijk bestand gebruiken om de voortgang bij te houden:
Deze methode is het meest eenvoudig. Uw eerste batchbestand schrijft de huidige status (bijvoorbeeld het regelnummer waarop het staat of een markering die een specifieke fase aangeeft) naar een tijdelijk bestand. Het tweede batchbestand leest vervolgens dit bestand om te bepalen waar de uitvoering moet worden hervat.
```partij
-- batch_bestand_1.bat --
@echo uit
echo Starten...> progress.txt
echo Verwerkingsstap 1>> progress.txt
::... enkele commando's ...
echo Verwerkingsstap 2>> progress.txt
::... meer commando's ...
echo Verwerkingsstap 3>> progress.txt
::... nog meer commando's ...
echo Klaar>> progress.txt
del voortgang.txt
-- batch_bestand_2.bat --
@echo uit
als er vooruitgang.txt bestaat (
voor /f "tokens=*" %%a in (progress.txt) do (
echo%%a
::Op basis van de inhoud van %%a bepaalt u vanaf welk deel u verder gaat
if "%%a"=="Verwerkingsstap 2" (
::...verwerking hervatten vanaf stap 2...
)
)
del voortgang.txt
) anders (
echo Geen voortgangsbestand gevonden. Vanaf het begin.
::...begin vanaf het begin...
)
```
2. Een robuustere scripttaal gebruiken:
Voor complexere scenario's of een betere foutafhandeling kunt u overwegen een krachtigere scripttaal zoals PowerShell te gebruiken. PowerShell heeft ingebouwde mechanismen voor het opslaan en herstellen van de status van een script.
3. Extern database-/bestandssysteem:
Voor uiterst complexe batchprocessen kunt u overwegen een database (zoals SQLite) of geavanceerde bestandssysteemtechnieken te gebruiken om de statusinformatie efficiënter en betrouwbaarder op te slaan en te beheren.
Belangrijke overwegingen:
* Foutafhandeling: Voeg robuuste foutafhandeling toe aan uw script. Wat moet er gebeuren als het tijdelijke bestand beschadigd is of ontbreekt?
* Bestandsvergrendeling: Als meerdere exemplaren van uw batchbestanden tegelijkertijd kunnen worden uitgevoerd, moet u bestandsvergrendelingsmechanismen toevoegen om gegevensbeschadiging te voorkomen.
* Complexiteit: De complexiteit van de oplossing zal afhangen van hoeveel status behouden moet blijven en van de complexiteit van de logica van uw batchbestand.
Kortom, je kunt een batchbestand niet direct "hervatten", zoals een programma met geheugen, maar je kunt dat gedrag wel simuleren met behulp van externe bestanden of een meer geavanceerde scriptingaanpak. Het eerste voorbeeld geeft een basisillustratie; u zult het waarschijnlijk aanzienlijk moeten aanpassen, afhankelijk van uw specifieke behoeften. |