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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 39611
Url: https://administrator.de/forum/batch-soll-verzeichnis-aus-dem-startmenue-jedes-lokalen-benutzers-loeschen-39611.html
Ausgedruckt am: 10.01.2025 um 09:01 Uhr
8 Kommentare
Neuester Kommentar
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"
[das @echo nur zu Testzwecken; zum Scharf-Machen löschen]
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"
Gruß
Biber
der seine Schnipsel selten testet ... auch diesmal nicht
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
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
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:
(=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
Klarer geworden?