alguien controla los archivos .bat??

es q tengo q hacer en msdos un archivo .bat que funcione como la papelera de windows y no me aclaro...
Wenas...

¿Podrías dar más datos? ?Qué es lo que tienes que hacer? ¿QUé tienes hecho ya? etc, etc...

Saludos [bye]
Los archivos .bat, funcionan como un macro de comandos, asi pues puedes hacer lo siguiente...



creas un archivo.bat ., por ejemplo papelera.bat

y editas porniendo lo siguiente :

@echo off <- hace que no se muestren comandos en pantalla
cd c:\recycled <- entra en el directorio de la papelera de Windows
del *.* <- borra todos los archivos del directorio


Y ya esta, salvas el fichero, y al ejecutarlo, simplemente te saldra la pregunta que si deseas eliminar los archivos seleccionados....

Es muy burdo, pero puedes mejorarlo con distintas ordenes., tal como attrib, por si hay algun archivo con extensión solo lectura.. etc.. etc...

Venga un saludooooooooooooooo
Tengo hecha la estructura, me falta rellenar lo que tengo q poner para q me haga lo que yo le pido...


@ECHO OFF

ECHO ********************
ECHO * PAPELERA *
ECHO * ---------------- *
ECHO * MENU PRINCIPAL *
ECHO ********************
ECHO
ECHO
ECHO
ECHO 1.- Borrar un archivo.
ECHO 2.- Ver el contenido de la papelera.
ECHO 3.- Restaurar un fichero.
ECHO 4.- Vacia la papelera.
ECHO 5.- Salir.

ECHO
ECHO ESCOGER LA OPCION DESEADA

IF "%1"=="" GOTO ERROR
CHOICE /C:12345 /t:5,30

IF ERRORLEVEL 5 GOTO FIN
IF ERRORLEVEL 4 GOTO VACIAR
IF ERRORLEVEL 3 GOTO RESTAURAR
IF ERRORLEVEL 2 GOTO VER
IF ERRORLEVEL 1 GOTO BORRAR

:BORRAR

:VER

:RESTAURAR

:VACIAR

:FIN
Varias dudas:

¿Vas a eliminar solo del raíz o puede ser de cualquier sitio del HD
¿Vas a eliminar directorios?
¿Hay que crear un directorio Papelera?
¿Dónde quieres que tome el parámetro el archivo por lotes?

Salu2 a tod@s.
Escrito originalmente por panzerfaust
Varias dudas:

¿Vas a eliminar solo del raíz o puede ser de cualquier sitio del HD
¿Vas a eliminar directorios?
¿Hay que crear un directorio Papelera?
¿Dónde quieres que tome el parámetro el archivo por lotes?

Salu2 a tod@s.



-- Pues yo creo q con que borre del raiz ya vale, pero si pude de mas sitios mejor.

-- Se podria?? supongo q si pero seria mucho mas chungo no?

-- Si, le he llamado basura

--Esta no la entiendo...
Es que no recuerdo cómo se le podía pasar un parámetro a un archivo .bat, se le puede pasar el nombre del archivo desde el principio c:\>papelera
Y luego referenciarlo en la ejecución con %%1
Pero dentro del archivo bat no recuerdo cómo se pedía un parámetro (ni si se podía hacer).

@echo Escriba el archivo a manipular.

pause

es lo que no sé si me lo dices lo demás es puro trámite.

Por cierto lo de borrar directorios es muy fácil.

Salu2 a tod@s.
Wenas...

Escrito originalmente por djektor
Tengo hecha la estructura, me falta rellenar lo que tengo q poner para q me haga lo que yo le pido...


@ECHO OFF

ECHO ********************
ECHO * PAPELERA *
ECHO * ---------------- *
ECHO * MENU PRINCIPAL *
ECHO ********************
ECHO
ECHO
ECHO
ECHO 1.- Borrar un archivo.
ECHO 2.- Ver el contenido de la papelera.
ECHO 3.- Restaurar un fichero.
ECHO 4.- Vacia la papelera.
ECHO 5.- Salir.

ECHO
ECHO ESCOGER LA OPCION DESEADA

IF "%1"=="" GOTO ERROR
CHOICE /C:12345 /t:5,30

IF ERRORLEVEL 5 GOTO FIN
IF ERRORLEVEL 4 GOTO VACIAR
IF ERRORLEVEL 3 GOTO RESTAURAR
IF ERRORLEVEL 2 GOTO VER
IF ERRORLEVEL 1 GOTO BORRAR

:BORRAR

:VER

:RESTAURAR

:VACIAR

:FIN



Veo que prácticamente ya está terminado, ¿no? Oooh

Bien,vamos por partes, como díria Jack el destripador!!

Supongo que esta prueba es una práctica de algún curso/asignatura, etc. Por ello, dependiendo del temarío/teoría que hayas dado, la respuesta que te doy, usando unos comandos u otros, serán los más correctos.

Otra cosa es la forma de "aceptar" los parámetros necesarios. Creo, según el menú que presentas, sólo es necesario un parámetro: el fichero a anular/restaurar. Seguramente le entrará al bat como parámetro, o sea, teclearías algo así:

c:/> papelera leeme.txt

siendo "papelera" el nombre del fichero bat y "leeme.txt" el fichero a anular/restaurar. Pero claro, todo esto depende del ejecicio que te han planteado.

También queda por saber si la ubicación del directorio "papelera" es fija, si existe o hay que crearla si no existe.

Según el menú presentado, creo que sólo borra/restaura ficheros (que simplifica mucho el programa).

¿Me puedes aclarar estos puntos?


Saludos [bye]


NOTA: Sobre el parámetro, se le pueden pasar todos los parámetros que quiereas a una bat (los parámetros serían los grupos de carácteres, separados por espacios, que se teclean tras el nombre del fichero bat. Para referenciarlos en el bat es tan simple como %n siendo 'n' el número de posición, así %0 sería el nombre del fichero bat, %1 el primer parámetro tecleado, %2 el segundo, etc,etc... Un ejemplo:

C:/> papelera uno dos tres ....

%0 sería "papelera.bat"
%1 sería "uno"
%2 sería "dos"
%3 sería "tres"

Es decir, lo que hace es "sustituir" la cadena %n por los caracteres que correspondan a ese parámetro. Existe una excepción, y es cuando se pregunta por uno de esos parámetros (o se incluyen en un FOR), que hay que poner dos %, es decir, algo así:
IF /%%1/==// GOTO AYUDA

No es más que preguntar si el parámetro uno está vacío, si es así, que presente la ayuda. Fácil, ¿no?

(Si metes más de 9 parámetros, tras leer el noveno debes de hacer "shift" para que se "desplacen" y el décimo sea ahora el primero, el undécimo sea el segundo, etc).


La verdad, es que esta pregunta me ha traído muy buenos recuerdos!!! Los tiempos del 3.0, 3.3 (lo mejor hasta la 5),4.0 (mierda de S.O), 5.0, 5.1, 5.2, 6.0, 6.1, 6.2, 7.0 (ya incluido en W95),...

Saludos [bye]
7 respuestas