ich wollte unter Windows XP, dass ein Benutzer bei der Anmeldung einen bestimmten Text sieht.
Dachte ich ganz einfach, machste ne Batch-Datei…
Damit der Benutzer das nicht jedesmal zu sehen bekommt, sollte sie sich nach der Textanzeige selbst löschen.
Dazu habe ich folgende Datei geschrieben:
@echo off
set var=Nachricht: Text @echo off
echo %var% @echo off
pause
del „C:\Dokumente und Einstellungen\User\Startmenü\Programme\Autostart\210608.bat“
trotzdem löscht er die Datei nach der Anzeige nicht. Wenn ich das pause mal nach dem del Befehl setze, sagt er mir immer „Das System kann den angegebenen Pfad nicht finden“.
Wenn ich aber eine Datei auf dem Desktop angebe, dann löscht er sie ohne zu meckern. Ich versteh das nicht, warum er angeblich den Autostart-Ordner nicht findet.
Kann jemand helfen?
er findet sie schon, aber ein programm kann sich wenn es aktiv ist nicht selbst löschen, weils ja dann seinen eigenen del befehl löscht und somit garnichts passiert
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
del „C:\Dokumente und
Einstellungen\User\Startmenü\Programme\Autostart\210608.bat“
trotzdem löscht er die Datei nach der Anzeige nicht. Wenn ich
das pause mal nach dem del Befehl setze, sagt er mir immer
„Das System kann den angegebenen Pfad nicht finden“.
weil der Pfad nicht in der 8+3-Interpunktion geschrieben ist.
del „C:\Dokumente und
Einstellungen\User\Startmenü\Programme\Autostart\210608.bat“
weil der Pfad nicht in der 8+3-Interpunktion geschrieben ist.
die betrifft nur Dateinamen. Wegen der Gänsefüßchen vorn und hinten sollte DOS den Namen schon fressen, wahrscheinlich gibt es aber keinen User „User“.
Nein, der Benutzer heißt natürlich nicht User. Ich hab ja auch anstatt des Textes „Text“ hingeschrieben, den Benutzer habe ich abgeändert.
weil der Pfad nicht in der 8+3-Interpunktion geschrieben ist.
Ja, das stimmt, ich hab das extra mit Anführungszeichen geschrieben, damit er auch den Ordner „Dokumente und Einstellungen“ findet.
er findet sie schon, aber ein programm kann sich wenn es aktiv ist nicht selbst löschen, weils ja dann seinen eigenen del befehl löscht und somit garnichts passiert
Hab ich auch gedacht, habs aber nachgelesen und dann auf dem Desktop ausprobiert. Als Pfad C:…\Desktop\210608.bat angegeben und siehe da, nachdem er pause ausgeführt hatte, ich also eine Taste gedrückt hatte, löschte er die Datei und das Fenster schloss…
Außerdem hab ich es auch so probiert, dass er ein anderes Programm startete, das nicht im Autostart-Ordner lag, das dann die Datei löschen sollte. Ging auf dem Desktop, aber nicht im Autostart.
Vielleicht ist der Autostart-Ordner irgendwie schreibgeschützt oder so was, was ich mir aber nicht vorstellen kann, da ich ja im Explorer aus dem Ordner Dateien löschen kann.
nicht die 8.3-Notation macht Ärger, sondern der Zeichensatz. DOS arbeitet mit einem anderen Zeichensatz als Windows, deshalb erkennt es das ü in Startmenü nicht als solches, sondern liest es als ³. Wie sich der Zeichensatz umstellen lässt, weiß ich nicht mehr, das ging früher in der Config.sys mit codepage und chcp (oder so ähnlich).
Zum Testen habe ich den String
C:\Dokumente und Einstellungen\Startmenü\Programme\Autostart
geändert in
C:\Dokumente und Einstellungen\Startm~1\Programme\Autostart,
da löscht der .bat ohne Murren.
Zum Testen habe ich den String
C:\Dokumente und
Einstellungen\Startmenü\Programme\Autostart
geändert in
C:\Dokumente und
Einstellungen\Startm~1\Programme\Autostart,
da löscht der .bat ohne Murren.
Ich mach das immer ziemlich unelegant mit einem „*“ an den ominösen Stellen - glücklicherweise sind sich noch keine zwei Dateinamen in die Quere gekommen …