mqlmann
Goto Top

Reg Schlüssel löschen, die nicht bestimmten Namen entsprechen

Hallo,

ich bin auf der Suche nach einem Weg mittels Batch die Einträge in der Reg unter
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
löschen zu lassen, die nicht einem bestimmten Namen (in diesem Falle beispielsweise
##ttvunity1#TTVUnity1#Unity1_P2_und_AMA
entsprechen.

Hat hier jemand einen Tipp für mich?

Viele Grüße
Johannes

Content-Key: 240562

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

Printed on: April 25, 2024 at 10:04 o'clock

Member: colinardo
Solution colinardo Jun 11, 2014, updated at Jun 13, 2014 at 13:35:34 (UTC)
Goto Top
Hallo Johannes,
wenn du von Powershell nicht abgeneigt bist:
$regpath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2"  
$ausnahme = '##ttvunity1#TTVUnity1#Unity1_P2_und_AMA'  
gci $regpath | ?{$_.Name -notlike "*\$ausnahme"} | Remove-Item -Force  
ansonsten mit Batch könnte das ungetestet so aussehen:
@echo off
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2" ^| findstr /bi "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MountPoints2\\" ^| findstr /vei "\\##ttvunity1#TTVUnity1#Unity1_P2_und_AMA"') do @(  
  reg delete "%%a" /f  
)
Grüße Uwe
Member: mqlmann
mqlmann Jun 11, 2014 at 08:20:32 (UTC)
Goto Top
Hallo Uwe,

vielen Dank für Deinen Tipp. Zur Not hätte ich das auch in der Shellk gebaut, aber das Script muss ich z. T. auf Rechner laufen lassen, an denen die ExecutionPolicy auf restricted gesetzt ist. Von daher wäre natürlich eine Batch besser...
Member: colinardo
colinardo Jun 11, 2014 updated at 08:25:22 (UTC)
Goto Top
Zitat von @mqlmann:
Von daher wäre natürlich eine Batch besser...
habe die Batch-Variante oben gerade noch ergänzt face-wink
Member: mqlmann
mqlmann Jun 13, 2014 at 07:01:18 (UTC)
Goto Top
Hallo Uwe,

nochmal Danke für Deinen Tipp. Ich hoffe, dass ich heute Abend dazu komme den Code zu testen.
Eine kurze Frage zum Verständnis:
Was genau macht "findstr /bi" bzw. "findstr /vei" in Deinem Code?

Viele Grüße
Johannes
Member: colinardo
Solution colinardo Jun 13, 2014 updated at 13:35:39 (UTC)
Goto Top
Zitat von @mqlmann:
Eine kurze Frage zum Verständnis:
Was genau macht "findstr /bi" bzw.
(b) sucht am Anfang jeder Zeile (i) Case insensitive
"findstr /vei" in Deinem Code?
(v) sucht alle Zeilen die nicht übereinstimmen (e) vom Ende der Zeile her (i) case insensitive.

ein findstr /? in einer Konsole listet dir alle Optionen auf.

Grüße Uwe
Member: mqlmann
mqlmann Jun 13, 2014 at 09:12:59 (UTC)
Goto Top
Ich verstehe - vielen Dank für die Erklärung!

Für ein ganz anderes Problem mit dem Verhalten der Powershell im Vergleich zur Batch, bin ich noch auf Lösungssuche. Meinst Du es hat Sinn das hier zu posten und sollte ich einen neues Thema öffnen?
Member: colinardo
colinardo Jun 13, 2014 at 09:14:38 (UTC)
Goto Top
Zitat von @mqlmann:
Für ein ganz anderes Problem mit dem Verhalten der Powershell im Vergleich zur Batch, bin ich noch auf Lösungssuche.
Meinst Du es hat Sinn das hier zu posten und sollte ich einen neues Thema öffnen?
kannst du ruhig hier stellen wenn es mit dem obigen Script zusammenhängt face-smile
Member: mqlmann
mqlmann Jun 13, 2014 at 13:35:59 (UTC)
Goto Top
Das sich diese Frage nicht auf das o. g. Script bezieht, habe ich ein neuse Thema erstellt:
Unterschiedliche Darstellung von stdout in Powershell und Batch

Vielen Dank für Deine Hilfe bei dieser Geschichte hier!