“Conocimiento Sistemas>Windows 7

¿Puedo tener un archivo por lotes en ejecución en otro, pero es el mismo lugar que antes de mover Windows 7?

2015/4/14
No puede reanudar directamente la ejecución de un archivo por lotes desde exactamente donde dejó en Windows 7 (o cualquier otra versión de Windows) después de un reinicio o apagado del sistema. Los archivos por lotes son inherentemente estatales; No guardan su estado interno entre carreras.

Sin embargo, puede lograr un efecto similar mediante el uso de técnicas para administrar el estado de procesamiento de archivos * externamente * al archivo por lotes. Aquí hay algunos enfoques:

1. Uso de un archivo temporal para rastrear el progreso:

Este método implica crear un archivo temporal que almacene el último elemento procesado o número de línea. El archivo por lotes lee este archivo al comienzo para determinar dónde reanudar.

`` `lote

@eco Off

establecer "tempfile =progress.tmp"

establecer "InputFile =Your_input_File.txt"

::Verifique si existe el archivo de progreso. Si no, comienza desde el principio.

Si existe "%tempfile%" (

set /p "lastProcessedline =" <"%tempfile%"

Echo Reano de línea:%LastProcessline %

) demás (

Establecer "LastProcessedline =0"

Echo comenzando desde el principio

)

::Procese el archivo, comenzando desde la última línea procesada.

para /f "skip =%lastProcessline%delims =" %% A in (%inputFile%) do (

Línea de procesamiento de eco:%% A

::Tu lógica de procesamiento aquí ...

::Actualizar el archivo de progreso con el número de línea actual.

echo %% a> "%tempfile%"

)

del "%tempfile%"

¡Echo terminó!

`` `` ``

2. Usando una base de datos (más compleja pero robusta):

Para escenarios más complejos o conjuntos de datos grandes, una pequeña base de datos (como SQLite) sería más adecuada. El archivo por lotes actualizaría la base de datos con la información de progreso. Esto ofrece una mejor resistencia y seguimiento. Este enfoque requiere instalar SQLite y usar sus herramientas de línea de comandos dentro de su script por lotes.

3. Modificación del archivo de entrada:

Esto es menos elegante pero puede funcionar para casos simples. Puede modificar el archivo de entrada en sí para marcar líneas procesadas (por ejemplo, agregar un marcador al comienzo de cada línea). El script luego omite las líneas con el marcador. Esto es menos robusto porque altera directamente el archivo de entrada.

Consideraciones importantes:

* Manejo de errores: Agregue el manejo de errores a sus archivos por lotes (por ejemplo, `if ErrorLevel 1 ...`). Si el procesamiento falla, su archivo de progreso podría ser inconsistente.

* Atomicidad: Si está escribiendo en archivos, considere problemas potenciales con escrituras parciales debido a las interrupciones. Use técnicas para garantizar la integridad de los datos.

* Bloqueo de archivos: Si varias instancias del archivo por lotes podrían ejecutarse simultáneamente, implementa el bloqueo de archivos para evitar condiciones de carrera.

Recuerde reemplazar `" your_input_file.txt "` con el nombre real de su archivo de entrada. El ejemplo proporcionado muestra el procesamiento de línea por línea, pero puede adaptarlo para procesar otras estructuras de datos. Elija el método que mejor se adapte a sus necesidades y complejidad. El enfoque de archivo temporal es el más fácil para los casos simples. Para cualquier cosa más involucrada, una base de datos es una solución mucho más robusta.

Windows 7
¿Con qué frecuencia Windows respalda el registro en XP?
¿Cómo se hizo la ventana 7?
Cuando estaba instalando Windows 7 Home Premium en su nueva computadora, se bloqueó ahora, ¿dice que la ayuda?
¿La instalación de Windows 7 sobrescribirá todos sus archivos?
¿Puede Vatsim funcionar en Windows 7?
¿Es legal instalar la actualización gratuita de Windows 7 en una computadora diferente a la que estaba destinada?
¿Cómo se actualiza Windows Phone 7?
¿Windows 7 es el mejor sistema operativo jamás creado?
Conocimiento de la computadora © http://www.ordenador.online