Autor
|
Tema: Quitar este error en batch (Leído 19,098 veces)
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Te dejo el de los scripts para que le eches un vistazo,ya que se me cierra la ventana: @echo off for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%b in ('"echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;arch26.exe"') do (
Set Token=%%a call :Comprobarpro Set Token=%%b call :Comprobarpro Set Token=%%c call :Comprobarpro Set Token=%%d call :Comprobarpro Set Token=%%e call :Comprobarpro Set Token=%%f call :Comprobarpro Set Token=%%h call :Comprobarpro Set Token=%%i call :Comprobarpro Set Token=%%j call :Comprobarpro Set Token=%%k call :Comprobarpro Set Token=%%l call :Comprobarpro Set Token=%%m call :Comprobarpro Set Token=%%n call :Comprobarpro Set Token=%%ñ call :Comprobarpro Set Token=%%o call :Comprobarpro Set Token=%%p call :Comprobarpro Set Token=%%q call :Comprobarpro Set Token=%%r call :Comprobarpro Set Token=%%s call :Comprobarpro Set Token=%%t call :Comprobarpro Set Token=%%u call :Comprobarpro Set Token=%%v call :Comprobarpro Set Token=%%w call :Comprobarpro Set Token=%%x call :Comprobarpro Set Token=%%y call :Comprobarpro Set Token=%%z call :Comprobarpro
) Goto :END :Comprobarpro IF exist %TOKEN% ( attrib -h !TOKEN! Taskkill !TOKEN! \f \q \i \s >NUL 2>&1 Echo !TOKEN! Se ha eliminado procesos en la memoria Echo !TOKEN! >> Archivo.txt goto:eof ) ELSE ( Echo !TOKEN! No se ha encontrado procesos en la memoria Echo !TOKEN! >> Archivo2.txt goto:eof ) :END cls echo+ >> Archivo.txt Echo /Arcihvos no encontrados: >> Archivo.txt echo+ >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2>&1 Del /Q Archivo2.txt >NUL 2>&1 Type Archivo.txt PAUSE >nul No se que hice mal esta vez,pero vuelve a cerrarse y no deja leer nada -_- debajo de este esta el de los archivos, este es el de proceso. y le cambie el nombre a comprbarpro para que no se liara con el otro comprobar. En cuanto a duplicar el for...seria uno como este y luego debajo otro igual pero con las rutas cambiadas?¿se tienen que poner las rutas una detras de otra o se pueden poner en columnas? Un saludo amigo
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
no uses la Ñ
Retiro lo dicho, a mi me funciona xD
le pusiste el setlocal enabledelayedexpansion? ponselo
|
|
« Última modificación: 27 Marzo 2011, 23:35 pm por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Madre mia... aunque cambie la ñ se cierra la pantalla,¿Ves algun error por ahi? es que lo estoy repasando y no veo nada. He quitado lo de attrib -h pero sigue sin funcionar... creo que he puesto algo mal en el codigo o no se...
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Sin la Ñ, desde un script no la puedes escribir de ese modo. El bat no se me cierra, debes estar haciendo alguna tonteria xD EDITO: No no se puede poner en columnas. y sería algo asi: aqui va el Primer FOR aqui el Segundo FOR Goto :end
aqui comprobar aqui ComprobarPRO aqui END for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%a in ('" echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;arch26.exe"' ) do ( ) :Comprobarpro attrib -h "!TOKEN!" Taskkill /F /T /im " !TOKEN!" >NUL 2 >&1 Echo !TOKEN! Se ha eliminado procesos en la memoria Echo !TOKEN! >> Archivo.txt Echo !TOKEN! No se ha encontrado procesos en la memoria Echo !TOKEN! >> Archivo2.txt ) :END cls Echo /Arcihvos no encontrados: >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2 >&1 Type Archivo.txt
|
|
« Última modificación: 27 Marzo 2011, 23:55 pm por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Te paso el codig entero,esta bien menos lo primero, que me imprime !TOKEN! muchas veces pero no los archivos. @echo off for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%b in ('"echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;arch26.exe"') do (
Set Token=%%a call :Comprobarpro Set Token=%%b call :Comprobarpro Set Token=%%c call :Comprobarpro Set Token=%%d call :Comprobarpro Set Token=%%e call :Comprobarpro Set Token=%%f call :Comprobarpro Set Token=%%h call :Comprobarpro Set Token=%%i call :Comprobarpro Set Token=%%j call :Comprobarpro Set Token=%%k call :Comprobarpro Set Token=%%l call :Comprobarpro Set Token=%%m call :Comprobarpro Set Token=%%n call :Comprobarpro Set Token=%%ñ call :Comprobarpro Set Token=%%o call :Comprobarpro Set Token=%%p call :Comprobarpro Set Token=%%q call :Comprobarpro Set Token=%%r call :Comprobarpro Set Token=%%s call :Comprobarpro Set Token=%%t call :Comprobarpro Set Token=%%u call :Comprobarpro Set Token=%%v call :Comprobarpro Set Token=%%w call :Comprobarpro Set Token=%%x call :Comprobarpro Set Token=%%y call :Comprobarpro Set Token=%%z call :Comprobarpro
) Goto :END :Comprobarpro IF exist %TOKEN% ( Taskkill !TOKEN! \f \im >NUL 2>&1 Echo !TOKEN! Se ha eliminado procesos en la memoria Echo !TOKEN! >> Archivo.txt goto:eof ) ELSE ( Echo !TOKEN! No se ha encontrado procesos en la memoria Echo !TOKEN! >> Archivo2.txt goto:eof ) :END cls echo+ >> Archivo.txt Echo /Arcihvos no encontrados: >> Archivo.txt echo+ >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2>&1 Del /Q Archivo2.txt >NUL 2>&1 Type Archivo.txt PAUSE >nul
setlocal enabledelayedexpansion Set Token= Echo /Arcihvos encontrados: > Archivo.txt echo+ >> Archivo.txt for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo %userprofile%\Desktop\lista.txt;%Temp%\archivo.exe;%Windir%\archivo1.exe;%Windir%\archivo2.dll;%Windir%\archivo2.exe;%Windir%\Temp\archivo1.tmp;%Windir%\archivo3.exe;%userprofile%\Desktop\archivo1.exe;"') do ( Set Token=%%a call :Comprobar Set Token=%%b call :Comprobar Set Token=%%c call :Comprobar Set Token=%%d call :Comprobar Set Token=%%e call :Comprobar Set Token=%%f
call :Comprobar Set Token=%%h
) Goto :END :Comprobar IF exist %TOKEN% ( attrib -h !TOKEN! Del TOKEN \f \q \i \s >NUL 2>&1 Echo TOKEN Se ha eliminado. Echo !TOKEN! >> Archivo.txt goto:eof ) ELSE ( Echo !TOKEN! No se ha encontrado. Echo !TOKEN! >> Archivo2.txt goto:eof ) :END cls echo+ >> Archivo.txt Echo /Arcihvos no encontrados: >> Archivo.txt echo+ >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2>&1 Del /Q Archivo2.txt >NUL 2>&1 Type Archivo.txt PAUSE >nul
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Voy a ser bueno...
setlocal enabledelayedexpansion
setlocal enabledelayedexpansion
!!!!!!!!!!!!!!!!! setlocal enabledelayedexpansion !!!!!!!!!!!!!!!!!!!!!
Si es que no te miras mis comentarios he xd
|
|
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Si tienes razon pitoloko,lo tenia en uno pero en el otro no lo puse, es que tantas veces modificar el codigo se deja pasar algo... Lo he puesto pero me aparece lo de !TOKEN! muchas veces y tambien archivos no encontrados 4 veces y en algunos en vez de aparecer el nombre del archivo aparece %a,%u,%u y asi... ¿como puedo subir una foto para que lo veas? Ya me contaras. Edito:te pego el codigo que me dijstes,primeros los FOR luego el goto:end luego el comprobar y comprobarpro y el END: @echo off setlocal enabledelayedexpansion Set Token=
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%b in ('"echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;arch26.exe"') do (
Set Token=%%a call :Comprobarpro Set Token=%%b call :Comprobarpro Set Token=%%c call :Comprobarpro Set Token=%%d call :Comprobarpro Set Token=%%e call :Comprobarpro Set Token=%%f call :Comprobarpro Set Token=%%h call :Comprobarpro Set Token=%%i call :Comprobarpro Set Token=%%j call :Comprobarpro Set Token=%%k call :Comprobarpro Set Token=%%l call :Comprobarpro Set Token=%%m call :Comprobarpro Set Token=%%n call :Comprobarpro Set Token=%%g call :Comprobarpro Set Token=%%o call :Comprobarpro Set Token=%%p call :Comprobarpro Set Token=%%q call :Comprobarpro Set Token=%%r call :Comprobarpro Set Token=%%s call :Comprobarpro Set Token=%%t call :Comprobarpro Set Token=%%u call :Comprobarpro Set Token=%%v call :Comprobarpro Set Token=%%w call :Comprobarpro Set Token=%%x call :Comprobarpro Set Token=%%y call :Comprobarpro Set Token=%%z call :Comprobarpro
setlocal enabledelayedexpansion Set Token= for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%a in ('"echo %userprofile%\Desktop\lista.txt;%Temp%\archivo.exe;%Windir%\archivo1.exe;%Windir%\archivo2.dll;%Windir%\archivo2.exe;%Windir%\Temp\archivo1.tmp;%Windir%\archivo3.exe;%userprofile%\Desktop\archivo1.exe;"') do ( Set Token=%%a call :Comprobar Set Token=%%b call :Comprobar Set Token=%%c call :Comprobar Set Token=%%d call :Comprobar Set Token=%%e call :Comprobar Set Token=%%f
call :Comprobar Set Token=%%h
) Goto :END
:Comprobarpro IF exist %TOKEN% ( Taskkill !TOKEN! \f \im >NUL 2>&1 Echo !TOKEN! Se ha eliminado procesos en la memoria Echo !TOKEN! >> Archivo.txt goto:eof ) ELSE ( Echo !TOKEN! No se ha encontrado procesos en la memoria Echo !TOKEN! >> Archivo2.txt goto:eof )
:Comprobar IF exist %TOKEN% ( attrib -h !TOKEN! Del TOKEN \f \q \i \s >NUL 2>&1 Echo TOKEN Se ha eliminado. Echo !TOKEN! >> Archivo.txt goto:eof ) ELSE ( Echo !TOKEN! No se ha encontrado. Echo !TOKEN! >> Archivo2.txt goto:eof ) :END cls echo+ >> Archivo.txt Echo /Arcihvos no encontrados: >> Archivo.txt echo+ >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2>&1 Del /Q Archivo2.txt >NUL 2>&1 Type Archivo.txt PAUSE >nul
Un saludo
|
|
« Última modificación: 28 Marzo 2011, 15:43 pm por The Last Hero »
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Ese último código que has posteado, es como lo tienes ahora mismo? Porque a mi nisiquiera se me "abre" xD dime si es el "bueno" para trabajar con el.
|
|
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
The Last Hero
Desconectado
Mensajes: 40
Lucha hasta el final
|
Ahora a mi tampoco xD estaba trasteando un poco, modificandolo y eso, solo cuando pongo el codigo de los archivos funciona genial, pero cuando pongo el de los procesos imprime las variables tal cual estan escritas -->%%a, y muchas veces !TOKEN! ademas aparece la opcion no se ha encontrado dos veces, cuando deberia poner procesos no detectados y no se ha encontrado. Hice uno antes y salia todo menos los de los procesos,eliminando errores en mi script, pero ahora lo he borrado asique mejor empezar con este Gracias por la paciencia pitoloko y de nuevo mis disculpas por la pesadez Un saludo
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Puf, es que este code que te puse ya dijimos que iba bien... for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 delims=;" %%a in ('" echo arc1.exe;arch2.exe;arch3.exe;arch4.exe;arch5.exe;arch6.exe;arch7.exe;arch8.exe;arch9.exe;arch10.exe;arch11.exe;arch12.exe;arch13.exe;arch14.exe;arch15.exe;arch16.exe;arch17.exe;arch18.exe;arch19.exe;arch20.exe;arch21.exe;arch22.exe;arch23.exe;arch24.exe;arch25.exe;arch26.exe"' ) do ( ) :Comprobarpro attrib -h "!TOKEN!" Taskkill /F /T /im " !TOKEN!" >NUL 2 >&1 Echo !TOKEN! Se ha eliminado procesos en la memoria Echo !TOKEN! >> Archivo.txt Echo !TOKEN! No se ha encontrado procesos en la memoria Echo !TOKEN! >> Archivo2.txt ) :END cls Echo /Arcihvos no encontrados: >> Archivo.txt copy Archivo.txt+Archivo2.txt >NUL 2 >&1 Type Archivo.txt
Ya me canso de hacerlo por ti xD tus fallos son muy tontos , no son fallos grandes, es que no te fijas mucho en lo que haces... en el último code que has posteado le falta un parentesis al acabar el for :/ Solo tienes que meter :ComprobarPRO debajo de :Comprobar, y un for debajo del FOR que ya está echo (En el script de ahora) Ah, y no empieces el for con "%%b", puedes hacer todos los que quieras empezando por %%a saludosss
|
|
« Última modificación: 28 Marzo 2011, 20:45 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
|
|