No se como hacer este batch...
Por un lado tengo estas carpetas:
(http://img545.imageshack.us/img545/1623/prtscrcaptureq.jpg)
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
@echo off
dir /b "%ProgramFiles%\NVIDIA Corporation\Installer2\Display.ControlPanel.*">1.txt
type 1.txt | FIND /c /v "" > lineas.txt
for /f "tokens=*" %%a in ('type "lineas.txt"') DO (
Set lineas=%%a
Call :Deltete_NVFolder
)
pause
:Deltete_NVFolder
If %lineas% GTR 1 (
echo "%ProgramFiles%\NVIDIA Corporation\Installer2\Display.ControlPanel."
pause
) ELSE (
Goto :eof
)
PAUSE
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**).
@echo off
If exist "%TEMP%\nvidia*.txt" (
Del /Q "%TEMP%\NvidiaFolders.txt" >nul
Del /Q "%TEMP%\NvidiaFoldersREVERSE.txt" >nul
Del /Q "%TEMP%\NvidiaFoldersLINES.txt" >nul
)
Call :nVUpdates Display.3DVision
Call :nVUpdates Display.ControlPanel
Call :nVUpdates Display.Driver
Call :nVUpdates Display.NVIRUSB
Call :nVUpdates Display.PhysX
Call :nVUpdates Display.Update
Call :nVUpdates installer
Call :nVUpdates NVIDIA.Update
echo listo
pause >nul
:nVUpdates
:~~~~~~~~~
If not exist "%ProgramFiles%\NVIDIA Corporation\Installer2\%1.*" (Goto :EOF)
dir /b "%ProgramFiles%\NVIDIA Corporation\Installer2\%1.*">"%TEMP%\NvidiaFolders.txt"
type "%TEMP%\NvidiaFolders.txt" | FIND /c /v "" > "%TEMP%\NvidiaFoldersLINES.txt"
for /f "tokens=*" %%a in ('type "%TEMP%\NvidiaFoldersLINES.txt"') DO (
Set lineas=%%a
Call :Delete_nVUpdate
)
goto :EOF
:Delete_nVUpdate
:~~~~~~~~~~~~~~~
Sort /R "%TEMP%\NvidiaFolders.txt" > "%TEMP%\NvidiaFoldersREVERSE.txt"
If %lineas% GTR 1 (
for /f "skip=1 tokens=*" %%A in ('type "%TEMP%\NvidiaFoldersREVERSE.txt"') do (RD /S /Q "%ProgramFiles%\NVIDIA Corporation\Installer2\%%A")
) ELSE (
Goto :eof
)