Autor
|
Tema: Quitar este error en batch (Leído 19,099 veces)
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
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: 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
Mensajes: 2.505
Crew Dragon
|
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... for /f "tokens=*" %%s in ('"Archivo1.exe"' "Archivo2"' ) do ( Del " %%s" \f \q \i \s >NUL 2 >&1 Echo %%s Se ha eliminado. Echo !nombre! No se ha encontrado. ) )
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 for /f "tokens=*" %%s in ('type Lista.txt' ) do ( Del %Ruta%\" %%s" \f \q \i \s >NUL 2 >&1 Echo %%s Se ha eliminado. Echo %%s No se ha encontrado. ) )
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
Mensajes: 40
Lucha hasta el final
|
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
Mensajes: 2.505
Crew Dragon
|
Entonces ponte a crear variables... 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 ( ) Del !TOKEN! \f \q \i \s >NUL 2 >&1 Echo !TOKEN! Se ha eliminado. Echo !TOKEN! No se ha encontrado. ) )
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
Mensajes: 2.505
Crew Dragon
|
Listo: Cada token es una variable, osea: tokens= 1 2 3 4 Variabl=%%a %%b %%c %%dA ver si este te sirve 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 ( ) :Comprobar Del !TOKEN! \f \q \i \s >NUL 2 >&1 Echo !TOKEN! Se ha eliminado. Echo !TOKEN! No se ha encontrado. )
|
|
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
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. cd ALGUNA_RUTA_DONDE_PODRIAN_ESTAR_LOS_ARCHIVOS for /f "tokens=*" %%f in ("file_1.txt", "file_2.txt", "file_3.txt" ) do ( ) )
|
|
|
En línea
|
|
|
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Buenas de nuevo,puse esta secuencia y me da otro tipo de error algo de comando me dio tiempo a leer: @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
Mensajes: 2.505
Crew Dragon
|
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 saludosss 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 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
Mensajes: 40
Lucha hasta el final
|
Nada,sigue igual,un error y se cierra la pantalla,con el echo incluido -_-" @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
Mensajes: 2.505
Crew Dragon
|
En serio, es pa matarte... xd 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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Que es este batch ?
Scripting
|
vicecity
|
2
|
4,848
|
7 Febrero 2004, 19:51 pm
por vicecity
|
|
|
(Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Scripting
|
SuperDraco
|
5
|
14,497
|
23 Enero 2011, 15:23 pm
por SuperDraco
|
|
|
que error tengo en este batch
Scripting
|
jesusandres1
|
7
|
4,230
|
7 Agosto 2012, 11:58 am
por Puntoinfinito
|
|
|
¿Cual es el error que estoy cometiendo en este comando de batch? [BATCH]
Scripting
|
TheFerret
|
3
|
3,327
|
14 Enero 2015, 21:27 pm
por TheFerret
|
|
|
No se esperaba en este momento. Error [Batch]
Scripting
|
Fron99
|
3
|
4,394
|
3 Abril 2017, 12:13 pm
por Fron99
|
|