Λειτουργικά συστήματα

Γνώση Υπολογιστών >> Λειτουργικά συστήματα >  >> Windows 7

Μπορείτε να συνεχίσετε ένα αρχείο παρτίδας που τρέχει σε άλλο, αλλά το ίδιο σημείο όπως ήταν πριν μετακινήσετε τα Windows 7;

Όχι, ένα αρχείο παρτίδας δεν μπορεί να επαναλάβει άμεσα την εκτέλεση από το ίδιο ακριβώς σημείο σε ένα άλλο αρχείο παρτίδας μετά από επανεκκίνηση του συστήματος Windows 7. Τα αρχεία παρτίδας δεν έχουν σχεδιαστεί για αυτό το είδος κρατικής εμμονής. Είναι ερμηνευμένες γραμμές ανά γραμμή κάθε φορά που τρέχουν.

Για να προσομοιώσετε αυτή τη συμπεριφορά, θα πρέπει να εφαρμόσετε μια διαφορετική προσέγγιση:

1. Χρησιμοποιώντας ένα προσωρινό αρχείο για την παρακολούθηση της προόδου:

Αυτή η μέθοδος είναι η πιο απλή. Το πρώτο σας αρχείο παρτίδας γράφει την τρέχουσα κατάσταση του (π.χ. ο αριθμός γραμμής που είναι ενεργοποιημένος ή ένας δείκτης που υποδεικνύει ένα συγκεκριμένο στάδιο) σε ένα προσωρινό αρχείο. Το δεύτερο αρχείο παρτίδας διαβάζει στη συνέχεια αυτό το αρχείο για να καθορίσει πού να συνεχιστεί η εκτέλεση.

`` `παρτίδα

-batch_file_1.bat-

@echo off

echo ξεκινώντας ...> progress.txt

Επεξεργασία Echo Βήμα 1>> Progress.txt

::... μερικές εντολές ...

Επεξεργασία Echo Βήμα 2>> Progress.txt

::... περισσότερες εντολές ...

Επεξεργασία Echo Βήμα 3>> Progress.txt

::... ακόμη περισσότερες εντολές ...

echo τελείωσε>> progress.txt

del progress.txt

-batch_file_2.bat-

@echo off

Εάν υπάρχει Progress.txt (

για /f "tokens =*" %% y in (progress.txt) do (

echo %% α

::Με βάση το περιεχόμενο του %% A, καθορίζετε από ποιο μέρος θα συνεχίσετε από

Εάν "%% a" =="Επεξεργασία βήματος 2" (

::... επαναλάβετε την επεξεργασία από το βήμα 2 ...

·

·

del progress.txt

) αλλιώς (

echo Δεν βρέθηκε αρχείο προόδου. Ξεκινώντας από την αρχή.

::... Ξεκινήστε από την αρχή ...

·

`` `

2. Χρησιμοποιώντας μια πιο ισχυρή γλώσσα δέσμης ενεργειών:

Για πιο περίπλοκα σενάρια ή καλύτερο χειρισμό σφαλμάτων, σκεφτείτε να χρησιμοποιήσετε μια πιο ισχυρή γλώσσα scripting όπως το PowerShell. Η PowerShell διαθέτει ενσωματωμένους μηχανισμούς για την εξοικονόμηση και την αποκατάσταση της κατάστασης ενός σεναρίου.

3. Εξωτερική βάση δεδομένων/σύστημα αρχείων:

Για εξαιρετικά πολύπλοκες διαδικασίες παρτίδας, εξετάστε τη χρήση μιας βάσης δεδομένων (όπως το SQLite) ή τις προηγμένες τεχνικές συστήματος αρχείων για την αποθήκευση και τη διαχείριση των πληροφοριών του κράτους πιο αποτελεσματικά και αξιόπιστα.

Σημαντικές εκτιμήσεις:

* Χειρισμός σφαλμάτων: Προσθέστε ισχυρό χειρισμό σφαλμάτων στο σενάριο σας. Τι πρέπει να συμβεί εάν το προσωρινό αρχείο είναι κατεστραμμένο ή λείπει;

* Κλείδωμα αρχείων: Εάν πολλαπλές περιπτώσεις των αρχείων σας μπορεί να εκτελεστούν ταυτόχρονα, πρέπει να προσθέσετε μηχανισμούς κλειδώματος αρχείων για να αποφύγετε τη διαφθορά των δεδομένων.

* πολυπλοκότητα: Η πολυπλοκότητα της λύσης θα εξαρτηθεί από το πόσο η κατάσταση πρέπει να διατηρηθεί και η πολυπλοκότητα της λογικής του αρχείου παρτίδας σας.

Εν ολίγοις, δεν μπορείτε απευθείας να "επαναλάβετε" ένα αρχείο παρτίδας σαν ένα πρόγραμμα με μνήμη, αλλά μπορείτε να προσομοιώσετε αυτή τη συμπεριφορά χρησιμοποιώντας εξωτερικά αρχεία ή μια πιο εξελιγμένη προσέγγιση δέσμης ενεργειών. Το πρώτο παράδειγμα παρέχει μια βασική εικόνα. Πιθανότατα θα χρειαστεί να το προσαρμόσετε σημαντικά ανάλογα με τις συγκεκριμένες ανάγκες σας.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα