Hallo,
ich habe nach langem googlen ein Batch Code zum Endlos Defragmentieren gefunden. Diesen will ich anwenden, wenn ich mal abwesend bin.
CODE:
@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
call:check %1
if „%ok%“==„nein“ (
echo Laufwerk %1: wird ausgelassen
echo.
goto:eof
)
echo.
echo.
echo chkdsk %1: /v
chkdsk %1:
if %errorlevel% NEQ 0 (
if %errorlevel% NEQ 2 (
echo %1: chkdsk Fehler!!!
echo Errorlevel: %errorlevel%
echo.
echo setzte dirty-Bit:
fsutil dirty set %1:
echo.
echo Versuche Reperatur
chkdsk %1: /v /x
if %errorlevel% EQU 2 (
echo Fehler bereinigt!
) else (
echo Errorlevel: %errorlevel%
echo.
goto:eof
)
)
)
echo defrag %1: -f
defrag %1: -f
if %errorlevel% NEQ 0 (
pause
exit
)
rem pause…
ping localhost -n 1 >NUL
goto:eof
check
set ok=nein
net use | find /i „%1:“ >NUL
if not errorlevel 1 (
echo %1: ist ein Netzlaufwerk
goto:eof
)
fsutil dirty query %1:
for /F „tokens=5“ %%f in (‚fsutil dirty query %1:‘) do (
if not „%%f“==„NICHT“ (
rem Laufwerk ist als fehlerhaft markiert
goto:eof
)
)
set ok=ja
goto:eof
Dort befindet sich jedoch auch eine Festplattenprüfung drin, die aber mir immer sagt, das es Fehler gibt.
Jedoch habe ich schon die Bootfehlerprüfung ausgeführt.
Könnte mir jemand den Code so schreiben, dass meine Festplatten defragmentiert werden in einer Endlosschleife, aber nur so, das nicht 20 Fenster auf einmal kommen sondern nacheinander.
Beschreibung zu den oben gennanten Code:
Defrag mit Endlos-Schleife
Das eingebaute Defrag-Tool erlaubt ja immer nur die gleichzeitige Defragmentierung eines Laufwerks. Außerdem sind oftmals mehrere Durchgänge nötig, bis das Laufwerk wirklich vollständig defragmentiert ist. Mit dieser kleinen Batch Datei werden alle Partitionen immer wieder hintereinander defragmentiert. Ich starte diese Skript hin und wieder, wenn ich gerade den Rechner nicht brauche. Wenn man wieder arbeiten will, kann man einfach das Eingabefenster schließen. Auch bei laufendem defrag passiert dabei nichts, weil defrag im Hintergrund die aktuelle Arbeit sauber beendet.
Damit aber nicht defekte Laufwerke einfach blind defragmentiert werden, habe ich eine etwas aufwendige Prozedur eingebaut, die die Laufwerke mit chkdsk erst überprüft. Wenn dabei ein Fehler auftritt, wird mit fsutil das dirty Bit gesetzt. Das bewirkt, dass beim nächsten Systemstart die Fehler behoben werden. Außerdem werden die Partitionen in dem loop ausgelassen, welche schon als dirty markiert sind.
Eine kleine Routine war auch nötig, damit Netzwerklaufwerke ausgelassen werden.
Mfg
Dominik