Batch soll Verzeichnis aus dem Startmenü jedes lokalen Benutzers löschen
Das Ausführen einer Batchdatei soll ein namentlich bekanntes Verzeichnis im Startmenü jedes lokalen Benutzers löschen, wobei die einzelnen lokalen Benutzer(-Profile) namentlich nicht bekannt sind.
Hallo zusammen
ich möchte mit einem Benutzer der über ausreichende Berechtigungen verfügt mittels einer Batchdatei aus dem Startmenü jedes Benutzerprofiles einen Ordner 'Testordner' entfernen.
Kann mir dabei jemand weiterhelfen?
Vielen Dank
ich möchte mit einem Benutzer der über ausreichende Berechtigungen verfügt mittels einer Batchdatei aus dem Startmenü jedes Benutzerprofiles einen Ordner 'Testordner' entfernen.
Kann mir dabei jemand weiterhelfen?
Vielen Dank
8 Antworten
- LÖSUNG Biber schreibt am 07.09.2006 um 16:19:11 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 16:30:05 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 17:11:01 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 19:22:41 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 19:41:55 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 20:05:54 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 21:10:03 Uhr
- LÖSUNG hofct schreibt am 08.09.2006 um 08:32:06 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 21:10:03 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 20:05:54 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 19:41:55 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 19:22:41 Uhr
- LÖSUNG Biber schreibt am 07.09.2006 um 17:11:01 Uhr
- LÖSUNG hofct schreibt am 07.09.2006 um 16:30:05 Uhr
LÖSUNG 07.09.2006 um 16:19 Uhr
LÖSUNG 07.09.2006 um 16:30 Uhr
Hallo Biber
Danke für deine Bemühung, -nein, es ist viel einfacher, es handelt sich um die lokalen Profile auf einem Client-PC. Und ich möchte den Batch auf dem Client PC ausführen.
Ich möchte nichst mit einem Logonskript machen, sondern der Batch soll in den einzelnen Benutzerprofilen ins Startmenü wechseln und dort den Testordner löschen.
Danke und Gruss, Christian
Danke für deine Bemühung, -nein, es ist viel einfacher, es handelt sich um die lokalen Profile auf einem Client-PC. Und ich möchte den Batch auf dem Client PC ausführen.
Ich möchte nichst mit einem Logonskript machen, sondern der Batch soll in den einzelnen Benutzerprofilen ins Startmenü wechseln und dort den Testordner löschen.
Danke und Gruss, Christian
LÖSUNG 07.09.2006 um 17:11 Uhr
Ah, hofct,
Du meinst so etwas wie dieses:
[das @ECHO nur zu Testzwecken; zum Scharf-Machen löschen]
Oder, wenn Dein TestOrdner einen eindeutigen Namen hat, dann einfacher:
Gruß
Biber
der seine Schnipsel selten testet ... auch diesmal nicht
Du meinst so etwas wie dieses:
::--- snipp HauWechAlleTestordner.bat
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\*Startm*"') do @if exist "%%i\TestOrdner @ECHO rd /q /s "%%i"
Oder, wenn Dein TestOrdner einen eindeutigen Namen hat, dann einfacher:
::--- snipp HauWechAlleTestordner.bat
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\TestOrdner"') do @ECHO rd /q /s "%%i"
Biber
der seine Schnipsel selten testet ... auch diesmal nicht
LÖSUNG 07.09.2006 um 19:22 Uhr
LÖSUNG 07.09.2006 um 19:41 Uhr
Na ja, hofct,
dann machen die Umlaute in "Startmenü" Probleme.
Deshalb hatte ich auch in meinem Schnipsel "Startm*" statt "Startmenü" geschrieben.
Abhilfe:
Für CMD.exe und Windows-GUI die Codepage synchronisieren (CHCP 1252).
Fur die CMD.exe steht sie bei Dir vermutlich auf CHCP 850?
Ohne Abhilfe/Ohne Codepage-Sync
Variante a) Batch-Mimik über "das Unterverzeichnis Testordner, das unter ..\%Username%\Startmenü hängt"
[Ergebnis: rd /q /s C:\DOKUME~1\taskuser\STARTM~1\Testordner]
Variante b) Batch-Mimik über die Suche nach dem Ordnernamen "TestOrdner", der unterhalb der %userProfile% eindeutig ist
[Ergebnis: rd /q /s C:\DOKUME~1\taskuser\STARTM~1\TESTOR~1]
Hope That Fits
Biber
dann machen die Umlaute in "Startmenü" Probleme.
Deshalb hatte ich auch in meinem Schnipsel "Startm*" statt "Startmenü" geschrieben.
Abhilfe:
Für CMD.exe und Windows-GUI die Codepage synchronisieren (CHCP 1252).
Fur die CMD.exe steht sie bei Dir vermutlich auf CHCP 850?
Ohne Abhilfe/Ohne Codepage-Sync
Variante a) Batch-Mimik über "das Unterverzeichnis Testordner, das unter ..\%Username%\Startmenü hängt"
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\Startm*"') do @echo if exist %%~si\Testordner ECHO rd /q /s %%~si\Testordner
Variante b) Batch-Mimik über die Suche nach dem Ordnernamen "TestOrdner", der unterhalb der %userProfile% eindeutig ist
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\Testordner"') do @echo rd /q /s %%~si
Hope That Fits
Biber
LÖSUNG 07.09.2006 um 20:05 Uhr
hallo Biber
das funktioniert super, danke vielmals:
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\Startm*"') do rd /q /s %%~si\Testordner
was mir nicht klar ist sind die beiden . . im Ausdruck "%Userprofile%\..\Startm*" ?
sowie der Parameter ~s im Ausdruck %%~si ?
kannst du mir sagen was es damit auf sich hat?
Gruss, hofct
das funktioniert super, danke vielmals:
@for /f "delims=" %%i in ('dir /aD /b /s "%Userprofile%\..\Startm*"') do rd /q /s %%~si\Testordner
was mir nicht klar ist sind die beiden . . im Ausdruck "%Userprofile%\..\Startm*" ?
sowie der Parameter ~s im Ausdruck %%~si ?
kannst du mir sagen was es damit auf sich hat?
Gruss, hofct
LÖSUNG 07.09.2006 um 21:10 Uhr
Hmmm,
kann ich nur versuchen... bin kein guter Erklärer.
Wenn Du mal parallel mit testest am CMD-Prompt:
Es gibt immer die Variable %userProfile%, die ungefähr so aussieht:
Die zeigt auf das "Benutzer-Root" des angemeldeten Benutzers.
Alle anderen Benutzerverzeichnisse sind dazu parallel (also ein Verzeichnis hoch und dann wieder runter.
"Ein Verzeichnis hoch" von %userprofile% aus gesehen ist (in meinem Fall): "C:\Dokumente und Einstellungen", wenn ich eingebe:
Der 2. Fall, ein Dir "%userProfile%\..\..\" geht zwei Verzeichnisse hoch.
Der DIR-Befehl oben im Oneliner:
.. sucht EINE Ebene oberhalb des eigenen Userverzeichnisses alle Verzeichnisse darunter, die mit "Startm*" anfangen.
So, jetzt der "%~si"-Teil der Frage...
Wieder Kurztest am CMD-Prompt:
Mit der "einfachen" FOR-Variablen %i bekäme ich den Pfad "wie er ist", mit allen Leerzeichen und Umlauten drin.
Mit der ...hm, letzten Endes Formatierungsoption "%~si" bekomme ich den "Short-Filename" in 8.3-Syntax.
Klarer geworden?
kann ich nur versuchen... bin kein guter Erklärer.
Wenn Du mal parallel mit testest am CMD-Prompt:
Es gibt immer die Variable %userProfile%, die ungefähr so aussieht:
>set userprofile
USERPROFILE=C:\Dokumente und Einstellungen\Biber
Alle anderen Benutzerverzeichnisse sind dazu parallel (also ein Verzeichnis hoch und dann wieder runter.
"Ein Verzeichnis hoch" von %userprofile% aus gesehen ist (in meinem Fall): "C:\Dokumente und Einstellungen", wenn ich eingebe:
(=20:48:11 D:\temp=)
>dir "%userprofile%\..\"
Datenträger in Laufwerk C: ist BiberSeiner
Volumeseriennummer: 0815-4711
Verzeichnis von C:\Dokumente und Einstellungen
......
>dir "%userprofile%\..\..\"
...
Verzeichnis von C:\
...
Der DIR-Befehl oben im Oneliner:
.....'dir /aD /b /s "%Userprofile%\..\Startm*"'
So, jetzt der "%~si"-Teil der Frage...
Wieder Kurztest am CMD-Prompt:
>for /f "delims=" %i in ('dir /aD /b /s "%Userprofile%\..\Startm*"') do @echo %i
C:\Dokumente und Einstellungen\All Users\Startmenü
C:\Dokumente und Einstellungen\Default User\Startmenü
C:\Dokumente und Einstellungen\Biber\Startmenü
C:\Dokumente und Einstellungen\taskuser\Startmenü
Mit der ...hm, letzten Endes Formatierungsoption "%~si" bekomme ich den "Short-Filename" in 8.3-Syntax.
>for /f "delims=" %i in ('dir /aD /b /s "%Userprofile%\..\Startm*"') do @echo %~si
C:\DOKUME~1\ALLUSE~1\STARTM~1
C:\DOKUME~1\DEFAUL~1\STARTM~1
C:\DOKUME~1\Biber\STARTM~1
C:\DOKUME~1\taskuser\STARTM~1