Arrastrar txt sobre Bat [Solucionado]

Iniciado por Dany3j, 22 Julio 2011, 15:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Dany3j

Hello de nuevo... Anoche Estaba sin nada que hacer y pues se me ocurrio algo asi.

Cuando suelto una imagen sobre Photoshop este se ejecuta y me abre la imagen,
entonces quisiera saber si es posible  realizar esto mismo con un archivo.bat pero algo diferente.

Por ejemplo.

tengo un archivo txt con este contenido.


Citarc:\test.txt
c:\test1\test.exe
c:\test2\*.exe
c:\test

Entonces al arrastrar ese txt sobre un archivo.bat con algún código este se ejecute y borre los archivos y carpetas de dicha lista.?

Sera esto posible.?  :huh:

"Pensando en Batch" XD

leogtz

Lo que le estás pasando al batch es el nombre del archivo, el no sabe qué contiene, por lo tanto debes analizarlo y eliminar cada linea:

Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%_ in ('type "%1"') do (
del /f /q "%%_"
)
pause


Solo hay que arrastrar el archivo con la lista de archivos a eliminar.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

sabeeee

Lo que queres hacer vos es que cuando arrastres el txt lo lea mediante el batch ¿no?
"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon

Dany3j

Ps la verdad no ha Funcionado Leo...  He creado un archivo lista.txt con

Citar
C:\hola.txt

Lo he arrastrado hacia el Archivo dellist.Bat que contiene tu codigo, El cual lo tengo en el escritorio.

Y se me genera un error,

CitarEl archivo no puede hallar el archivo especificado.
Error mientras se proesaba: C:\Documents.


A que se debe esto.
"Pensando en Batch" XD

SuperDraco

Cita de: dany3j en 23 Julio 2011, 01:13 AM
se me genera un error,

A que se debe esto.

A que el argumento estaba entrecomillado "%1" así que Leo le puso sin darse cuenta 4 comillas dobles por eso no funciona  :xD.


Así ya funciona:

Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%_ in ('type %1') do (
del /f /q "%%_"
)
pause
No he vuelto, solo estoy de paso.

Dany3j

Con los archivos va bien pero las carpetas no las borra. Tengo que agragarle RD me imagino.
"Pensando en Batch" XD

leogtz

Bueno, no probé el código anterior, y este tampoo, a ver si funciona:

Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%_ in ('type %1') do (
cd "%%_" 2> nul && (
cd ..
rd /s /q "%%_"
) || (
del /f /q "%%_"
)
)
pause
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Dany3j

Perfecto Leo  :rolleyes: Podemos dar por solucionado. Gracias A ti Tambien Pitoloko.  ;-)
"Pensando en Batch" XD