entiendo cómo llamar a archivos por lotes anidados dentro de un archivo principal con el comando call
, ya que hay un montón de recursos en la que:¿Por qué la llamada a un archivo por lotes anidado sin anteponer "call" a la línea sale del archivo por lotes principal?
Sin embargo, no entiendo por qué llamando a otro archivo por lotes de otro termina el principal.
Para un ejemplo menos abstracto, supongamos que tengo un archivo por lotes que "enlaces" junto separan archivos por lotes y yo erróneamente no Prepend call
a cada línea:
foo.bat
bar.bat
Esto sólo se ejecutaría foo .bat y luego salir. Para ejecutar correctamente ambos comandos, que habría que anteponer llamada antes de cada declaración:
call foo.bat
call bar.bat
Por qué sigue existiendo la primera funcionalidad? ¿Por qué no ha sido cambiado? Me di cuenta de que call
se introdujo en MS-DOS 3.3, que se lanzó a finales de los 80, así que ¿esta funcionalidad sigue estando aquí para la compatibilidad inversa? No puedo pensar en ningún uso (práctico) de ello, pero tal vez estoy demasiado acostumbrado a las "nuevas" técnicas de programación.
Bien, ¿entonces la funcionalidad inicial simplemente fue pasada por alto? 'call' se implementó porque las personas comúnmente usaban soluciones como describió? ¿No sobrescribieron la funcionalidad inicial simplemente por compatibilidad con versiones anteriores? –
a la derecha. La compatibilidad con versiones anteriores es lo que permite que muchos programas win 3.0 se ejecuten en win 7. En ese momento, terminé escribiendo algunas funciones en ensamblador para que fuera un programa y pudiera volver al archivo por lotes, lo que ahora es 'choice ' ', Implementé el uso de un programa simple que establece el nivel de error en el valor ASCII del carácter presionado. – SeanC
Como un lado, la funcionalidad de leer una línea, ejecutarla, leer otra línea, etc. significa que puede tener archivos de lotes auto-modificables. Nunca he hecho esto a propósito, pero si tiene un archivo por lotes que recupera (una nueva versión) del control de revisión, puede obtener resultados extraños donde ejecuta la versión 1 hasta la línea que hace la recuperación, luego continúa con la versión 2. – yoyo