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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Solucionado) Estoy bloqueado con este batch :S
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) Estoy bloqueado con este batch :S  (Leído 3,181 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
(Solucionado) Estoy bloqueado con este batch :S
« en: 9 Noviembre 2011, 16:31 pm »

No se como hacer este batch...

Por un lado tengo estas carpetas:


Y lo que quiero es hacer un batch que verifique si existe MÁS DE UNA carpeta de cada, y si encuentra más de una, entonces que borre las últimas...

Por ejemplo, de "Display.ControlPanel.*" hay 3 carpetas, pues quiero que borre la .0 y .1



Estoy intentando hacer el script pero me he bloqueado en el procedimiento del call... Solo he conseguido que logre reconocer que existen 3 carpetas de Display.ControlPanel.* xD
Código
  1. @echo off
  2.  
  3. dir /b "%ProgramFiles%\NVIDIA Corporation\Installer2\Display.ControlPanel.*">1.txt
  4.  
  5. type 1.txt | FIND /c /v "" > lineas.txt
  6.  
  7.  
  8. for /f "tokens=*" %%a in ('type "lineas.txt"') DO (
  9. Set lineas=%%a
  10. Call :Deltete_NVFolder
  11. )
  12.  
  13.  
  14. :Deltete_NVFolder
  15. If %lineas% GTR 1 (
  16. echo "%ProgramFiles%\NVIDIA Corporation\Installer2\Display.ControlPanel."
  17. ) ELSE (
  18. Goto :eof
  19. )
  20.  
  21.  



« Última modificación: 23 Noviembre 2011, 19:01 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Estoy bloqueado con este batch :S
« Respuesta #1 en: 23 Noviembre 2011, 19:01 pm »

mmm repasando el subforo me he dado cuenta que no "finalicé" este tema xD

Hace tiempo me vino a la mente la solución con la ayuda de un miembro de otro foro, solo habia que trabajar mejor el problema, era fácil:

Aqui lo dejo por si a alguien le sirve algún día  :xD :xD :xD

PD: el code sirve para borrar las actualizaciones de nVidia, Las que no se usan (ni se borran, las muy put**).

Código
  1. @echo off
  2.  
  3. If exist "%TEMP%\nvidia*.txt" (
  4.     Del /Q "%TEMP%\NvidiaFolders.txt" >nul
  5.     Del /Q "%TEMP%\NvidiaFoldersREVERSE.txt" >nul
  6.     Del /Q "%TEMP%\NvidiaFoldersLINES.txt" >nul
  7. )
  8.  
  9.  
  10. Call :nVUpdates Display.3DVision
  11. Call :nVUpdates Display.ControlPanel
  12. Call :nVUpdates Display.Driver
  13. Call :nVUpdates Display.NVIRUSB
  14. Call :nVUpdates Display.PhysX
  15. Call :nVUpdates Display.Update
  16. Call :nVUpdates installer
  17. Call :nVUpdates NVIDIA.Update
  18.  
  19. echo listo
  20.  
  21.  
  22.  
  23. :nVUpdates
  24. :~~~~~~~~~
  25. If not exist "%ProgramFiles%\NVIDIA Corporation\Installer2\%1.*" (Goto :EOF)
  26.  
  27. dir /b "%ProgramFiles%\NVIDIA Corporation\Installer2\%1.*">"%TEMP%\NvidiaFolders.txt"
  28. type "%TEMP%\NvidiaFolders.txt" | FIND /c /v "" > "%TEMP%\NvidiaFoldersLINES.txt"
  29.  
  30. for /f "tokens=*" %%a in ('type "%TEMP%\NvidiaFoldersLINES.txt"') DO (
  31. Set lineas=%%a
  32. Call :Delete_nVUpdate
  33. )
  34. goto :EOF
  35.  
  36.  
  37.  
  38. :Delete_nVUpdate
  39. :~~~~~~~~~~~~~~~
  40. Sort /R "%TEMP%\NvidiaFolders.txt" > "%TEMP%\NvidiaFoldersREVERSE.txt"
  41.  
  42. If %lineas% GTR 1 (
  43.    for /f "skip=1 tokens=*" %%A in ('type "%TEMP%\NvidiaFoldersREVERSE.txt"') do (RD /S /Q "%ProgramFiles%\NVIDIA Corporation\Installer2\%%A")
  44. ) ELSE (
  45.    Goto :eof
  46. )
 


« Última modificación: 23 Noviembre 2011, 19:04 pm por EleKtro H@cker » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines