julian57
Goto Top

Wartungsaufgabe - Frage

Hallo,
ich habe mir ein kleines Tool geschrieben was mir bestimmte Verzeichnisse(Temp,Cookies...) löscht.
Nun will ich noch ein Verzeichnis hinzufügen weiß aber nicht wie der genau Pfad ist.
Und zwar ich suche den Pfad in dem die lezten verwendete Dokumente abgespeichert sind.
Ich benutze Windows XP.
Hier erst mal mein aktuelles Batch-Script.
@echo off
title System-Wartung
echo Cookies werden geloescht...
echo  -- @ O O O O --
ping localhost -n 2 >NUL 
@RD /S /Q "C:\Dokumente und Einstellungen\%USERPROFILE%\Cookies"  
cls
echo Temp wird geloescht...
echo  -- O @ O O O --
ping localhost -n 2 >NUL 
@RD /S /Q "C:\Dokumente und Einstellungen\%USERPROFILE%\Lokale Einstellungen\Temp"  
cls
echo Temporary Internet Files werden geloescht...
echo  -- O O @ O O --
ping localhost -n 2 >NUL
@RD /S /Q "C:\Dokumente und Einstellungen\%USERPROFILE%\Lokale Einstellungen\Temporary Internet Files"  
cls
echo Verlauf wird geloescht...
echo  -- O O O @ O --
ping localhost -n 2 >NUL
@RD /S /Q "C:\Dokumente und Einstellungen\%USERPROFILE%\Lokale Einstellungen\Verlauf"  
cls
echo Programm wird Beendet...
echo  -- O O O O @ --
ping localhost -n 2 >NUL
Wenn ihr noch nützliche Pfade zu unnötigen Verzeichnissen wisst oder
ein paar Verbesserungsvorschläge,Anregungen hättet bitte einfach posten.

mfg

Julian57

Content-ID: 155032

Url: https://administrator.de/contentid/155032

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

bastla
bastla 13.11.2010 um 19:47:42 Uhr
Goto Top
Hallo Julian57!

Ich nehme an, Du meinst
"%USERPROFILE%\Recent"
BTW: "C:\Dokumente und Einstellungen\%USERPROFILE%" ist doppelt gemoppelt - es genügt "%USERPROFILE%", wie Du Dich leicht mit
set u
überzeugen kannst - auch "C:\Dokumente und Einstellungen\%USERNAME%" würde nur die Portierbarkeit auf ein anderes BS erschweren ...
Und wenn ich schon mal dabei bin: "@" vor einem Befehl unterdrückt die Ausgabe dieses einen Befehles wie "echo off" - nachdem letzteres aber (in der ersten Zeile) ausgeführt wurde, ist in weiterer Folge und daher auch vor "RD" kein "@" mehr nötig.
Außerdem: Wiederkehrende Zeilen, und seien es nur diese beiden:
echo  -- @ O O O O --
ping localhost -n 2 >NUL
sind in einem "Unterprogramm" besser aufgehoben (da übersichtlicher und änderungsfreundlicher) - also zB
...
call :Trenn 
...
call :Trenn
...
goto :eof

:Trenn
echo  -- @ O O O O --
ping localhost -n 2 >NUL
goto :eof
bzw noch besser: gleich den gesamten "Ankündigungsblock" als Unterprogramm abhandeln:
@echo off
title System-Wartung
call :Ankuend "Cookies werden geloescht..."  
@RD /S /Q "%USERPROFILE%\Cookies"  
call :Ankuend "Temp wird geloescht..."  
@RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Temp"  
...
goto :eof

:Ankuend
cls
echo %~1
echo  -- @ O O O O --
ping localhost -n 2 >NUL
goto :eof
Grüße
bastla
mathe172
mathe172 13.11.2010 um 21:30:56 Uhr
Goto Top
Hallo Julian57! Hallo Bastla!

@bastla: Ich glaube die "-- @ O O O O --"-Zeile kann man nicht so auslagern, sie soll iwie eine Fortschrittsanzeigen sein (glaub ich zumindest face-wink)

Mathe172
bastla
bastla 13.11.2010 um 21:48:01 Uhr
Goto Top
Hallo mathe172!

Jetzt wo Du's sagst, fällt's mir auch wie Schuppen von den Haaren ... face-wink

... obwohl sich auch unter diesen Voraussetzungen etwas machen ließe (ist aber in diesem Fall vielleicht doch etwas zu viel des Guten face-wink - obwohl: wenn noch zwei Arbeitsschritte dazu kämen, wären es insgesamt schon weniger Zeilen) - also etwa:
@echo off & setlocal
set /a Steps=5
set /a Step=1

call :Ankuend "Cookies werden geloescht..."  
RD /S /Q "%USERPROFILE%\Cookies"  
call :Ankuend "Temp wird geloescht..."  
RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Temp"  
call :Ankuend "Temporary Internet Files werden geloescht..."  
RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Temporary Internet Files"  
call :Ankuend "Verlauf wird geloescht..."  
RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Verlauf"  
call :Ankuend "Programm wird beendet..."  
goto :eof

:Ankuend
cls
echo %~1
<nul set /p=-- 
set /a Bis=%Step%-1
for /L %%i in (1,1,%Bis%) do <nul set /p= 0 
<nul set /p= @ 
set /a Von=%Step%+1
for /L %%i in (%Von%,1,%Steps%) do <nul set /p= 0 
<nul set /p= -- 
ping localhost -n 2 >NUL
set /a Step+=1
goto :eof
Grüße
bastla
Julian57
Julian57 14.11.2010 um 14:16:36 Uhr
Goto Top
Hallo,
Danke erstmal für den Pfad
Und ja das "-- @ O O O O --" soll eine Fortschrittsanzeige sein.
Das mit dem doppelten Pfad ist mir auch erst jetzt aufgefallen, habs gleich alles umgeschrieben

@echo off
title System-Wartung
set x=2
echo Cookies werden geloescht...
echo  -- @ O O O O O --
ping localhost -n %x% >NUL 
@RD /S /Q "%USERPROFILE%\Cookies"  
cls
echo Temp wird geloescht...
echo  -- O @ O O O O --
ping localhost -n %x% >NUL 
@RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Temp"  
cls
echo Temporary Internet Files werden geloescht...
echo  -- O O @ O O O --
ping localhost -n %x% >NUL
@RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Temporary Internet Files"  
cls
echo Verlauf wird geloescht...
echo  -- O O O @ O O --
ping localhost -n %x% >NUL
@RD /S /Q "%USERPROFILE%\Lokale Einstellungen\Verlauf"  
cls
echo Recent wird geloescht...
echo  -- O O O O @ O --
ping localhost -n %x% >NUL
@RD /S /Q "%USERPROFILE%\Recent"  
cls
echo Programm wird Beendet...
echo  -- O O O O O @ --
ping localhost -n %x% >NUL
Und danke Bastle für deine Mühen aber werds erstmal so belassen

mfg

Julian57