elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Quitar este error en batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: Quitar este error en batch  (Leído 17,654 veces)
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Quitar este error en batch
« en: 26 Marzo 2011, 15:02 pm »

Hola a todo el mundo. Resulta que he hecho un bat,en el que si existen muchos archivos que los elimine, lo malo es que si no existen los archivos sale un error en la pantalla del bat, y es muy incomodo. Mi pregunta es...¿puedo poner algun codigo para que en vez de que salga-->ERROR:No se puede encontrar el archivo-->c:\tal\tal ponga archivo no encontrado? Es que lo he probado con todo y no sale,os dejo la sintaxis del codigo:

Citar
For %%s IN ("archivo1.exe"
"archivo2.exe"
"archivo3.exe"


) Do (
IF exist "%%s" (Del "%%s" \f

\q \i \s)
)
En cuanto llega a esa parte,imprime el error junto con el del archivo,y no quiero que el error  se vea en la pantalla del batch,solo el que si hay alguno de los nombres los elimine y si no hay que imprima en la pantalla no encontrado. :-\

Espero que me puedan ayudar,muchas gracias por adelantado.


« Última modificación: 26 Marzo 2011, 15:11 pm por The Last Hero » En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #1 en: 26 Marzo 2011, 16:21 pm »

Ya te lo dije la vez anterior... no se si el codigo original es como el que has posteado ahora, pero ese código no elimina nada, solo ejecuta el archivo1, luego el 2, y luego el 3...

Con el código que has posteado, te podrías saltar la parte del For, solo necesitas empezar desde el IF...

De todas formas toma, a ver si te funciona de coña xD...




Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4.  
  5. for /f "tokens=*" %%s in ('"Archivo1.exe"' "Archivo2"') do (
  6. Set Nombre=%%s
  7. IF exist %%s (
  8. Del "%%s" \f \q \i \s >NUL 2>&1
  9. Echo %%s Se ha eliminado.
  10. ) ELSE (
  11. Echo !nombre! No se ha encontrado.
  12. goto:eof
  13. )
  14. )
  15.  



Aunque creo que seria mucho más comodo hacer el for con un type, me refiero a esto:


Dentro de Lista.txt tenemos escritos los nombres de los archivos, solo los nombres, y sin comillas, asi:
Archivo1.exe
Archivo2.exe
Archivo3.exe



Código
  1. @echo off
  2. Set Ruta="C:\TEST"
  3.  
  4.  
  5. for /f "tokens=*" %%s in ('type Lista.txt') do (
  6. IF exist "%%s" (
  7. Del %Ruta%\"%%s" \f \q \i \s >NUL 2>&1
  8. Echo %%s Se ha eliminado.
  9. ) ELSE (
  10. Echo %%s No se ha encontrado.
  11. goto:eof
  12. )
  13. )
  14.  
  15.  



RESULTADO:

Archivo1.exe Se ha eliminado.
Archivo2.exe No se ha encontrado.
Archivo3.exe No se ha encontrado.
Presione una tecla para continuar . . .


Esta bien, solo tenia archivo1 :)



Espero que te sirva de ayuda..

Saludos!


« Última modificación: 26 Marzo 2011, 16:26 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #2 en: 26 Marzo 2011, 16:31 pm »

Hola de nuevo pitoloko,he probado de nuevo tu codigo y sigue imprimiendo en el batch archivo no encontrado.El problema es que me gustaria solo que estuviera el batch,nada de bloc de notas,y alguna secuencia que diga borra esto,habia pensado en un if not exist... pero no creo que funciona o incluso en etiquetas goto pero no se... Me gustaria saber alguna forma de que todo se entornara en el batch,sin elementos externos como bloc de notas etc...

Gracias de nuevo por tu colaboracion...

Un saludo
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #3 en: 26 Marzo 2011, 17:13 pm »

Entonces ponte a crear variables...


Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4.  
  5. for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo c:\d\Archivo1.exe;C:\Windows\system32\xupala\xupalaaaaVIRUS.exe;c:\tikitaka\virus del tikitaka.rom"') do (
  6. echo %%a
  7. echo %%b
  8. echo %%c
  9. )
  10. IF exist %TOKEN% (
  11. Del !TOKEN! \f \q \i \s >NUL 2>&1
  12. Echo !TOKEN! Se ha eliminado.
  13. ) ELSE (
  14.   Echo !TOKEN! No se ha encontrado.
  15.   goto:eof
  16. )
  17. )
  18.  
  19.  
  20.  



El codigo no va,pero puedes probarlo para ver el resultado primero, el problema es que no se me ocurre como crear la variable para cada Token :/ , pero mira, es una idea que te doy xDDDDDD esta vez no t lo voy a poder solucionar, ya veré si se me ocurre algo, saludosss
« Última modificación: 26 Marzo 2011, 17:18 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #4 en: 26 Marzo 2011, 17:27 pm »

Listo:

Cada token es una variable, osea:

tokens=   1            2         3           4
Variabl=%%a   %%b   %%c   %%d



A ver si este te sirve :P





Código
  1.  
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. Set Token=
  5.  
  6. for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo c:\d\Archivo1.exe;c:\d\ARCHIVO2.exe;C:\Windows\system32\xupala\xupalaaaaVIRUS.exe;c:\tikitaka\virus del tikitaka.rom;"') do (
  7. Set Token=%%a
  8. call :Comprobar
  9. Set Token=%%b
  10. call :Comprobar
  11. Set Token=%%c
  12. call :Comprobar
  13. Set Token=%%d
  14. call :Comprobar
  15. )
  16.  
  17.  
  18. :Comprobar
  19. IF exist %TOKEN% (
  20. Del !TOKEN! \f \q \i \s >NUL 2>&1
  21. Echo !TOKEN! Se ha eliminado.
  22. ) ELSE (
  23.   Echo !TOKEN! No se ha encontrado.
  24.  
  25.   goto:eof
  26. )
  27.  

 
 
En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Quitar este error en batch
« Respuesta #5 en: 26 Marzo 2011, 17:33 pm »

Lo primero que debiste de decir, es "en donde estarán los archivos a eliminar", o en donde se supone que deberían estar, es por eso que estamos teniendo problemas de archivos no encontrados.

Código
  1. cd ALGUNA_RUTA_DONDE_PODRIAN_ESTAR_LOS_ARCHIVOS
  2. for /f "tokens=*" %%f in ("file_1.txt", "file_2.txt", "file_3.txt") do (
  3. for /f "tokens=*" %%_ in ('dir /b /s "%%f"') do (
  4. del /f /q "%%_"
  5. )
  6. )
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #6 en: 27 Marzo 2011, 12:34 pm »

Buenas de nuevo,puse esta secuencia y me da otro tipo de error  :xD algo de comando me dio tiempo a leer:

Citar
@echo off
setlocal enabledelayedexpansion
Set Token=
 
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"%Temp%\archivo.exe;
%Windir%\archivo1.exe;
%Windir%\archivo2.dll;
%Windir%\archivo2.exe;
%Windir%\Temp\archivo1.tmp;
%Windir%\archivo3.exe;"') do (
   Set Token=%%a
   call :Comprobar
   Set Token=%%b
   call :Comprobar
   Set Token=%%c
   call :Comprobar
   Set Token=%%d
   call :Comprobar
)
 
PAUSE
 
:Comprobar
IF exist %TOKEN% (
   Del !TOKEN! \f \q \i \s >NUL 2>&1
   Echo !TOKEN! Se ha eliminado.
) ELSE (
      Echo !TOKEN! No se ha encontrado.
 
      goto:eof
)

En cuanto a tu respuesta Leo, es que son en varios directorios,temp,windows,system32,escritorio...por eso no puedo especificar todos.

Gracias a ambos por la paciencia y por la participacion  ;-)

Un saludo
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #7 en: 27 Marzo 2011, 16:43 pm »

aldita sea, pero ponle el ECHO dentro del for '¬¬ no modifiques tanto el ejemplo que te puse xD, pruebalo solo cambiandlo las rutas de los archivos, no le quites el echo y deja las comillas como estan, y di si asi te va, al menos a mi si me fue :P

saludosss



Código:
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo %Temp%\archivo.exe;%Windir%\archivo1.exe;etc..."')


PD: El ejemplo de Leo es buenisimo y muy simple, es la diferencia entre el y yo jaja el te pone los buenos :xD y yo los mediocres, pero el mio tambien sirve! ponle el echo.
En línea

No he vuelto, solo estoy de paso.
The Last Hero

Desconectado Desconectado

Mensajes: 40


Lucha hasta el final


Ver Perfil
Re: Quitar este error en batch
« Respuesta #8 en: 27 Marzo 2011, 16:57 pm »

Nada,sigue igual,un error y se cierra la pantalla,con el echo incluido -_-"

Citar
@echo off
setlocal enabledelayedexpansion
Set Token=
 
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('" echo %Temp%\archivo.exe;
%Windir%\archivo1.exe;
%Windir%\archivo2.dll;
%Windir%\archivo2.exe;
%Windir%\Temp\archivo1.tmp;
%Windir%\archivo3.exe;"') do (
   Set Token=%%a
   call :Comprobar
   Set Token=%%b
   call :Comprobar
   Set Token=%%c
   call :Comprobar
   Set Token=%%d
   call :Comprobar
)
 
PAUSE
 
:Comprobar
IF exist %TOKEN% (
   Del !TOKEN! \f \q \i \s >NUL 2>&1
   Echo !TOKEN! Se ha eliminado.
) ELSE (
      Echo !TOKEN! No se ha encontrado.
 
      goto:eof
)

[/b]

En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Quitar este error en batch
« Respuesta #9 en: 27 Marzo 2011, 17:05 pm »

En serio, es pa matarte... xd


Código:
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo %Temp%\archivo.exe;%Windir%\archivo1.exe;%Windir%\archivo2.dll;%Windir%\archivo2.exe;%Windir%\Temp\archivo1.tmp;%Windir%\archivo3.exe;"') do (

así es como te digo, NO LO CAMBIES, PRUEBALO ASÍ.


rESULTADO:
C:\Users\PiToLoKo\AppData\Local\Temp\archivo.exe No se ha encontrado.
C:\Windows\archivo1.exe No se ha encontrado.
C:\Windows\archivo2.dll No se ha encontrado.
C:\Windows\archivo2.exe No se ha encontrado.
Presione una tecla para continuar . . .

« Última modificación: 27 Marzo 2011, 17:07 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: [1] 2 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que es este batch ?
Scripting
vicecity 2 4,546 Último mensaje 7 Febrero 2004, 19:51 pm
por vicecity
(Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Scripting
SuperDraco 5 13,786 Último mensaje 23 Enero 2011, 15:23 pm
por SuperDraco
que error tengo en este batch
Scripting
jesusandres1 7 3,863 Último mensaje 7 Agosto 2012, 11:58 am
por Puntoinfinito
¿Cual es el error que estoy cometiendo en este comando de batch? [BATCH]
Scripting
TheFerret 3 2,979 Último mensaje 14 Enero 2015, 21:27 pm
por TheFerret
No se esperaba en este momento. Error [Batch]
Scripting
Fron99 3 3,980 Último mensaje 3 Abril 2017, 12:13 pm
por Fron99
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines