Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Estudia694 Forum-Spezialist
Anmeldedatum: 02.02.2005 Beiträge: 51
|
Verfasst am: 01.05.2005, 22:04 Titel: Batch-Dateien funktionieren nicht unter XP ! |
|
|
Bis zu der Version "Windows Millenium" habe ich zuweilen alle temporären Dateien, Recent-Files und Cache-Ordner mit einer auf dem Desktop verknüpften Batch-Befehlsdatei per Mausklick gelöscht.
Bekanntlich sind ja nach einer Internetsitzung auch in diesen Verzeichnissen oft Dateien abgelegt, die der Ad-Aware-Scanner oft als Malware "trackings" erkennt. Da kann man doch mit einem Mausklick
schon Ordnung schaffen, bevor der Scanner zum Einsatz kommt.
Unter Windows XP funktioniert das leider nicht!
Ich nahm bisher an, dass ein Windows - solange es auch wenigstens eine
DOS-Emulation als DOS-Fenster bietet - auch die Funktionalität mit allen DOS-Befehlen bietet.
Bis vor drei Monaten fielen mir auf Anhieb keine "ungewöhnlichen" Einschränkungen auf.
Erstelle ich im DOS-Fenster ein Verzeichnis, dann können lange Datei- und Ordnernamen jedoch auch dann nicht erstellt werden, wenn man diese in Anführungszeichen setzt. Ein mir bisher unbekannter Fehler!
Bis "Windows ME" ging das!
Der Datei- oder Ordnername bleibt auf 8 Zeichen begrenzt - ohne Tilde mit Ziffer - einfach abgehackt!
Und nun habe ich in gewohnter Weise eine Batch-Datei mit delete-Befehlen erstellt, die die temporären Dateien löschen sollen.
Lange Dateipfade natürlich in Anführungszeichen - wie ich es kannte.
Es funktioniert aber nicht! Es steht alles korrekt drin mit dem Zusatz "/y"
es passiert nichts! Das DOS-Fenster blitzt kurz auf und hinterher ist in den Cache-Verzeichnissen noch alles drin!
Auch manuell eingegebene Einzelbefehle bleiben wirkungslos - ohne Fehlermeldung. Die Dateien sind nicht gesperrt und auch nicht "hidden".
Wie kann ich unter Windows XP eine kompatible Batch-Folge schreiben?
Anmerkung: Ich habe einen identisch eingerichteten Zweit-PC unter Windows Millenium.
Dort funktioniert in den übereinstimmenden Bereichen die Batch-Datei einwandfrei und löscht Cache-Dateien und die Recent-liste.
Bei XP hat man aber noch im Laufwerk C andere temporäre User-Verzeichnisse. Der XP-Rechner ist als Single-User-Rechner in Gebrauch.
Hauptuser ist auch gleichzeitig Administrator.
|
|
Nach oben |
|
Gast
|
Verfasst am: 02.05.2005, 00:58 Titel: |
|
|
Ich habe unter XP mit der Ausführung von "*.bat" überhaupt keine Probleme und ich nutze diese viel. Es gibt auch keine Einschränkungen bei den Dateinamen oder Pfaden, selbstverständlich können diese genauso länger als 8 Zeichen sein, wie es bei Windows üblich ist.
|
|
Nach oben |
|
Gast
|
Verfasst am: 02.05.2005, 12:08 Titel: |
|
|
Habe von Estudia694 die PN erhalten:
Estudia694 hat Folgendes geschrieben: |
Hallo, also ich habe "Win XP SP2 professional".
Vielleicht liegt es daran?
Hier mal ein Beispiel
@echo off
del "C\Dokumente und Einstellungen\estudia694\Lokale Einstellungen\Temp" *.*/y
del "C\Dokumente und Einstellungen\estudia694\Lokale Einstellungen\Verlauf" *.*/y
del "C\Dokumente und Einstellungen\estudia694\Cookies" *.*/y
del "I\E-MAIL\mozilla\estudia694-gmx\luk1f4k5.slt\Cache" *.*/y
del "C\WINDOWS\Temp" *.*/y
exit
Unter Windows ME kein Ding.
Unter XP wirkungslos! |
Das ist vollkommen logisch, da du falsche Parameter verwemdest. Versuche es mal mit der folgenden Schreibweise:
@echo off
del "%UserProfile%\Lokale Einstellungen\Temp\*.*" /q
del "%UserProfile%\Lokale Einstellungen\Verlauf\*.*" /q
del "%UserProfile%\Cookies\*.*" /q
del "I:\E-MAIL\mozilla\estudia694-gmx\luk1f4k5.slt\Cache\*.*" /q
del "C:\WINDOWS\Temp\*.*" /q
exit
Gruß Hans
ps: Warum hastz du diese Frage nicht gleich hier rein geschrieben?
|
|
Nach oben |
|
Gast
|
Verfasst am: 02.05.2005, 15:35 Titel: |
|
|
Estudia694 hat Folgendes geschrieben: |
Aber wieso geht es in Win9x/ME und in XP sind die Parameter falsch?
Woher soll ich so etwas wissen?
|
Unter Win-XP gelten z.t. andere Schalter als bei Win-9x. Erfahren tust du das, wenn du den Befehl gefolgt von „/?“ eingibst.
Estudia694 hat Folgendes geschrieben: |
Aber die Prozentzeichen haben ihre Wirkung nur dann, wenn ich z.B. unter "Ausführen" %temp% angebe und komme dadurch in das temporäre Verzeichnis, um mit ctrl+a und del diese manuell zu löschen.
Für andere Verzeichnisse funktioniet das nicht. Da kennt der Computer den Befehl nicht.
|
Zwichen zwei Prozentzeichen kann man einen VariablenNamen setzen, deren Inhalt dann verwendet wird. Die Variable selber wird mit dem Befehl „set Name= Inhalt“ definiert und kann mit dem Befehl „set Name“ abgefragt werden. In Win-XP sind einige Variablen systemweit definiert, deshalb habe ich sie in deinem Beispiel verwendet. Für mich ist das z.b. wichtig, wenn ich mit der gleichen Batchdatei auf verschiedenen Rechnern und unter verschiedenen Benutzern arbeite.
|
|
Nach oben |
|
Gast
|
Verfasst am: 02.05.2005, 16:09 Titel: |
|
|
Estudia694 hat Folgendes geschrieben: |
Jetzt funktioniert es tadellos!
Habe den gesamten Batch-Block mit der "Ersetzen"-Automatik editiert.
Ich nannte ja nur Beispiele, aber es sind insgesamt 20 Zeilen.
Komisch! Das war nicht augenfällig!
Aber wenn ich so nachsehe - bei der Variante mit den absoluten Pfaden war der Fehler nicht. Das muß beim Editieren passiert sein.
Eines habe ich noch nicht herausgefunden Wie löscht man unter einem Verzeichnis unbekannte weitere TEMP-Verzeichnisse mit Inhalt?
Beispiel Im Temporären Ordner sind ja nicht nur normale Elemente von WEB-seiten oder Dateien abgelegt, sondern zuweilen auch Unterverzeichnisse.
Die haben immer einen unbestimmten anderen Namen.
Wie lösche ich die richtig? Denn ich kann für einen deltree-Befehl doch keine normalen DOS-Jokerezichen benutzen und das Prozenzzeichen ist ja auch nicht almächtig.
Es klappt jedenfalls bei Systaxtests bisher nicht.
habe auch jetzt wieder kurz expermentiert. Es bleibt bei einer Ebene.
Denn Verzeichnisse mit Inhalt sind so nicht richtig löschbar.
Da muß man den Namen des unbekannten Verzeichnisses relativieren und kann dann die darin enthaltenen Dateien löschen.
Ja aber wie ging das? |
Den Inhalt aller Unterverzeichnisse kannst du mit "del Verzeichnis\*.* /s" löschen, dabei bleiben dann aber die leeren Verzeichnisse stehen.
Um den Inhalt eines Ordner komplett zu löschen (im Beispiel der Temp-Ordner des Benutzers) benutzt du die folgende Befehlsfolge:
deltree "%temp%"
md "%temp%"
D.h., es wird der gesammte Temp-Ordner gekillt und sofort neu erstellt.
|
|
Nach oben |
|
|