Buenas!
1) Te están pidiendo que listes archivos, no que almacenes el resultado de la búsqueda en una variable,
sé que intentas ser eficiente pero en Batch no puedes serlo, así que mi consejo es que no hagas más de lo necesario, es decir, aquello que te piden que hagas.
2) Lamentablemente Batch no llega ni a poder calificarse como "lenguaje de programación", y las variables multi-linea no es una característica soportada (de forma natural) en Batch.
3) Entiendo perfectamente esto, pero estoy evaluando el código con unos compañeros y algunos no manejan nada de inglés.
1) Sí, entiendo eso. Lo que pasa es que dentro de mi cabeza no se me ocurría otra posible solución mas que, después de obtener el resultado de la búsqueda, dejarlo almacenado en algún lugar al que pueda recurrir a la hora de realizar la opción 2.
2) Estuve leyendo tiempo después de haber posteado eso y caí en cuenta de eso.
Con el código que me preparó (muy amable de su parte, muchísimas gracias) puedo ejecutar la primer actividad, y al hacer la segunda solicita detallar dónde y con qué nombre va a ir el archivo ¿Verdad? Bueno, pues he ingresado C:\prueba1.txt y en C: no quedó ningún .txt con esa información. Lo más probable es que yo no esté entendiendo el código, porque a mitad de este año he empezado a programar con batch y, por ej., no conozco el comando choice. Hasta ahora, en las clases, solo hemos trabajado con if y de hecho la intención era realizar este ejercicio con if. Pero se me complica mucho (demasiado) la idea de anidarlos tantas veces. Es muy engorroso y es algo que suelo hacer en Pascal (otro lenguaje que estamos utilizando), pero en Pascal cuento con la ayuda de los Begin/end que puedo abrir bastantes veces uno dentro del otro. Aquí la cosa es demasiado engorrosa
Su código me ha servido para entender mejor cómo podría llegar a realizarlo, pero tampoco llego a comprenderlo totalmente. Estoy en un nivel muy inferior, demasiado.
Siguiendo la idea de hacerlo con los ifs (aunque quiero intentar entender al Choice, no me serviría para la clase), he ideado este código. Pero se ingresa a la primer opción y luego cuando ingreso a la segunda, entra nuevamente por la primera. ¿Qué hago?
:menu
echo 1
) listar archivos segun su criterio
echo 2
) la busqueda anterior se almacena en un archivo
echo 3
) copiar este archivo dentro
del otro archivo de texto ingresado
set /p o= Elija su opcion:
:uno
del /s C:\artemp1.txt
>> c:\artemp2.txt
set /p nar= Ingrese el nombre
del archivo:
set /p exar= Ingrese su extension, si no conoce ecriba un arterisco:
dir /s C:\*
%nar%*.
%exar% >> c:\artemp1.txt
type c:\artemp1.txt
cls
:dos
set /p noar1= Escriba el nombre
del archivo de texto donde se va a guardar:
type c:\artemp1.txt >> c:\%noar%.txt
cls
:tres
set /p nombre2= Escriba el nombre
del segundo archivo de texto destino:
type C:\%nombre1%.txt >> c:\%nombre2%.txt
cls
:cuatro
:error
echo Ingreso algun nro fuera
del rango o intento realizar las opciones 2 y 3 sin hacer primero la 1 o la 2, respectivamente
cls
:if2
:if3
La idea es que una vez que se ingrese a la primera opción, esta determine el resultado de la búsqueda (según los parámetros ingresados) y los guarde en un archivo temporal (el cual es borrado cada vez que se inicia este bloque :uno). De manera que si por alguna razón quisiera volver a entrar en la opción uno, muestre el resultado de la última búsqueda realizada y no de las anteriores. Ahora, si quisiese ingresar a la segunda opción la idea es que se evalúe si lo elegido es un 2. Si es asi, nos envía a otro bloque donde hay OTRO if el cual determina si se ejecutó o no la primera opción (por medio de una variable "contadora"), si fuese así, nos enviaría al bloque :dos (el cual tiene el bloque por el cual se guarda en un archivo con nombre a gusto del usuario. La tercera opción consiste en copiar el contenido del mismo archivo creado en la dos, a otro archivo, y la manera de evaluar si se ejecutó la segunda opción ya es la misma que se utilizó en la segunda para determinar si se ejecutó la primera.
No entiendo qué hacer y traté de ser lo más claro posible en la explicación del algoritmo. Nuevamente, soy muy torpe con estas cosas. Es el segundo año que tengo programación y vengo de programar en pascal cosas tontas.