JensDiemer

Defragmentiert jedes Laufwerk in einem Endlos-Loop.
Leider bekomme ich es einfach nicht hin, mit den Errorlevels von chkdsk ein vernünftiges Verhalten zu erreichen :(

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
cd /d C:\

:loop
    for %%i in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
        if exist %%i:\NUL call:defrag %%i
    )
    echo.
    echo pause...
    ping localhost -n 10 >NUL
goto loop

:defrag
    net use | find /i "%1:" >NUL
    if not errorlevel 1 (
        echo %1: ist ein Netzlaufwerk
        echo.
        goto:eof
    )
    echo chkdsk %1:
    chkdsk %1:
    if not errorlevel 0 (
        echo %1: chkdsk Fehler!!!
        pause
        goto:eof
    )
    echo defrag %1: -f
    defrag %1: -f
    if not "%errorlevel%"=="0" pause
    rem pause...
    ping localhost -n 1 >NUL
goto:eof