Especificar un directorio diferente al actual en .bat

Estoy realizando un ciclo superior de programación y en un ejercicio me piden esto:

Guardar en un archivo BATCH, especificado como parámetro (a decir verdad la palabra parámetro no acabo de entender a que se refiere), al menos la siguiente información de los ficheros (nombre, extensión, tamaño en bytes, fecha de creación, hora de creación,... Esto se como hacerlo porque es con el comando DIR que muestra todo el contenido de la carpeta --> "dir > nombrearchivo.txt"). Se proporcionara un menú para indicar de que tipo de ficheros queremos información (los tipos serán los siguientes: .txt, .aaa, .ele). Pero permitir especificar el directorio del cual queremos sacar la información (entendiéndolo a mi manera se supone que sin importar en que directorio que actualmente estemos poder especificar otro directorio diferente y conseguir la información del comando DIR y añadirlo al nombrearchivo.txt)

Perdón si no me explico bien pero esto de los archivos .bat es nuevo para mi y cualquier información que me pudieran proporcionar sobre como se crean y que comandos se pueden utilizar en ellos me serian de gran utilidad

Tambien se como crear el menu pero el comando SET se le puede poner esto --> /P, /A y demas, y no se que significa o que hacen.

Gracias de ante mano por la ayuda. Salu2!

1 respuesta

Respuesta

Hay algo que no encaja muy bien en la redacción de la pregunta y es el "Guardar" del comienzo. Los archivos batch, extensión BAT, son archivos de comandos de la "shell" (interfaz de comandos en modo consola) del sistema operativo Windows que normalmente se conoce como MSDOS. Por tanto no le veo mucho sentido a "guardar en un archivo batch..." Tampoco me encaja muy bien lo que sigue, "especificado como parámetro..."

Si lo que se quiere decir es algo como "Crear mediante un archivo batch un archivo que guarde, al menos, información sobre el nombre, la extensión, etc. de los archivos contenidos en un directorio que se pasa como parámetro, proporcionando un menú para indicar la extensión de los archivos de los que se solicita la información..." el siguiente archivo batch podría hacer lo que se pide:

@echo off
Setlocal EnableDelayedExpansion
if #%1# == ## goto ayuda
:Inicio
Cls
Echo.
Echo.
Echo 1. Archivos tipo TXT (.txt)
Echo.
Echo.
Echo 2. Archivos tipo AAA (. Aaa)
Echo.
Echo.
Echo 3. Archivos tipo ELE (. Ele)
Echo.
Echo.
set /p opc=Opci¢n elegida: 
if "%opc%" == "1" (set ext=TXT&goto seguir)
if "%opc%" == "2" (set ext=AAA&goto seguir)
if "%opc%" == "3" (set ext=ELE&goto seguir)
echo Opci¢n incorrecta
pause
goto inicio
:seguir
del Resum%ext%.log
for /f "tokens=*" %%x in ('dir /b "%~1\*.%ext%"') do (
set fh=%%~tx
set fecha=!fh:~0,10!
set hora=!fh:~11,8!
Echo ----------------------------------- >>Resum%ext%.log
echo Archivo: %1\%%x >>Resum%ext%.log
echo Nombre: %%~nx >>Resum%ext%.log
echo Extensión: %%~xx >>Resum%ext%.log
echo Tamaño: %%~zx >>Resum%ext%.log
echo Fecha creación: %fecha% >>Resum%ext%.log
echo Hora creación: %hora% >>Resum%ext%.log
echo Atributos: %%~ax >>Resum%ext%.log
)
goto fin
:Ayuda
Echo Informa sobre los archivos del tipo elegido existentes en el directorio que se indica
echo Formato: %0 Directorio
echo Ejemplo:
echo %0 "c:\Archivos de programa"
:Fin

Salva en un archivo de texto (creado, por ejemplo, con el Bloc de Notas o Notepad) los comandos indicados, dale como nombre, por ejemplo, prueba.bat, guárdalo en un directorio a tu elección, abre una ventana CMD (escribiendo "cmd" en la ventana "Ejecutar" de los accesorios de Windows), sitúate en el directorio dónde lo guardaste y teclea "prueba". Lee lo que te dice y actúa en consecuencia. Si quieres alguna aclaración concreta no tienes más que pedirla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas