Non, un fichier batch ne peut pas reprendre directement l'exécution à partir exactement du même point dans un autre fichier batch après un redémarrage ou un arrêt du système Windows 7. Les fichiers batch ne sont pas conçus pour ce type de persistance d’état. Ils sont interprétés ligne par ligne à chaque exécution.
Pour simuler ce comportement, vous devez implémenter une approche différente :
1. Utilisation d'un fichier temporaire pour suivre la progression :
Cette méthode est la plus simple. Votre premier fichier batch écrit son état actuel (par exemple, le numéro de ligne sur lequel il se trouve ou un marqueur indiquant une étape spécifique) dans un fichier temporaire. Le deuxième fichier batch lit ensuite ce fichier pour déterminer où reprendre l'exécution.
```lot
-- batch_file_1.bat --
@echo désactivé
echo Démarrage...> progress.txt
echo Étape de traitement 1>> progress.txt
::... quelques commandes ...
echo Étape de traitement 2>> progress.txt
::... plus de commandes ...
echo Étape de traitement 3>> progress.txt
::... encore plus de commandes ...
echo Terminé>> progress.txt
del progress.txt
-- batch_file_2.bat --
@echo désactivé
s'il existe progress.txt (
pour /f "tokens=*" %%a dans (progress.txt) faites (
écho %%a
::En fonction du contenu de %%a, vous déterminez à partir de quelle partie continuer
if "%%a"=="Étape de traitement 2" (
::...reprendre le traitement à partir de l'étape 2...
)
)
del progress.txt
) autre (
echo Aucun fichier de progression trouvé. Depuis le début.
::...commencez par le début...
)
```
2. Utilisation d'un langage de script plus robuste :
Pour des scénarios plus complexes ou une meilleure gestion des erreurs, envisagez d'utiliser un langage de script plus puissant comme PowerShell. PowerShell dispose de mécanismes intégrés pour enregistrer et restaurer l'état d'un script.
3. Base de données/système de fichiers externe :
Pour les processus par lots extrêmement complexes, envisagez d'utiliser une base de données (comme SQLite) ou des techniques avancées de système de fichiers pour stocker et gérer les informations d'état de manière plus efficace et fiable.
Considérations importantes :
* Gestion des erreurs : Ajoutez une gestion robuste des erreurs à votre script. Que se passe-t-il si le fichier temporaire est corrompu ou manquant ?
* Verrouillage de fichiers : Si plusieurs instances de vos fichiers batch peuvent s'exécuter simultanément, vous devez ajouter des mécanismes de verrouillage de fichiers pour éviter la corruption des données.
* Complexité : La complexité de la solution dépendra de la quantité d'état à préserver et de la complexité de la logique de votre fichier batch.
En bref, vous ne pouvez pas directement « reprendre » un fichier batch comme un programme avec de la mémoire, mais vous pouvez simuler ce comportement à l’aide de fichiers externes ou d’une approche de script plus sophistiquée. Le premier exemple fournit une illustration de base ; vous devrez probablement l'adapter considérablement en fonction de vos besoins spécifiques.
|