Batch Liste installierter Programme filtern

PSP_GIGA

Cadet 3rd Year
Registriert
Jan. 2011
Beiträge
57
Hallo CB-Forum,

ich möchte meine installierte Programme auflisten und filtern.

das auflisten funktioniert soweit:

Code:
@echo off 
regedit /e c:\inst.reg HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 
find "DisplayName" c:\inst.reg | sort /+15 > C:\%COMPUTERNAME%.TXT
del c:\inst.reg 
edit C:\%COMPUTERNAME%.TXT

wenn ich jetzt bei
Code:
 find "DisplayName"
z.B. Microsoft Office schreibe, schreibe gibt er mir viel zu viel aus.
Ich möchte nur sehen ob es installiert ist

könnt ihr mir helfen?

Grüße PSP_GIGA
 
es wird alles doppelt und dreifach ausgegeben hier ein kleiner einblick:
"DisplayName"="Update for 2007 Microsoft Office System (KB967642)"
"DisplayName"="Update for Microsoft Office 2007 System (KB2539530)"
"DisplayName"="Update for Microsoft Office 2010 (KB2202188)"
"DisplayName"="Update for Microsoft Office 2010 (KB2494150)"
"DisplayName"="Update for Microsoft Office 2010 (KB2523113)"
"DisplayName"="Update for Microsoft Office 2010 (KB2553065)"
"DisplayName"="Update for Microsoft Office 2010 (KB2553092)"
"DisplayName"="Update for Microsoft Office 2010 (KB2566458)"
"Comments"="Microsoft Office Live Meeting-Add-In fr Microsoft Office Outlook"
---------- C:\INST.REG
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"ParentDisplayName"="Microsoft Office Professional Plus 2010"
"InstallLocation"="C:\\Program Files\\Microsoft Office Communicator\\"
"InstallLocation"="C:\\Program Files\\Microsoft Office"
"InstallLocation"="C:\\Program Files\\Microsoft Office\\"
"InstallLocation"="C:\\Program Files\\Microsoft Office\\"
"InstallLocation"="C:\\Program Files\\Microsoft Office\\"
"InstallLocation"="C:\\Program Files\\Microsoft Office\\"
"InstallLocation"="C:\\Program Files\\Microsoft Office\\"
 
Hi,

also, dieser Code listet dir alle installierten Programm auf dem System auf.

Was du da zurückkriegst kannst du ja ggf einfach nach dem gesuchten Begriff parsen? Wäre das kein Ansatz? Du kriegst nunmal für "Office" einfach etliche Einträge zurück. Du wolltest du eh nur wissen, OB es installiert ist. Also kannst du doch sagen "wenn es was zurückgibt ist es installiert, wenn nicht dann nicht". Oder was genau meinst du?

VG,
Mad

Edit:

Scheinbar verwendest du ja einen Teil von diesem Code:

Code:
@echo off

If Exist c:\installedprogs.txt Del c:\installedprogs.txt

regedit /e c:\regexport.txt "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall"

find "Microsoft Office" c:\regexport.txt >c:\regprogs.txt

for /f "tokens=2 delims==" %%a in (c:\regprogs.txt) do echo %%~a >>c:\installedprogs.txt

del c:\regexport.txt
del c:\regprogs.txt

exit

Wenn ich da "Microsoft Office" als DisplayName eingeben kriege ich genau folgendes Ergebnis:

Code:
C:\\Program Files (x86)\\Microsoft Office\\ 
Microsoft Office Office 64-bit Components 2010 
C:\\Program Files (x86)\\Microsoft Office\\ 
Microsoft Office Shared 64-bit MUI (German) 2010

Das passt doch, oder was erwartest du?
 
Zuletzt bearbeitet:
wenn ich "Microsoft Office Professional" engebe kommt das:
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010
Microsoft Office Professional Plus 2010

aber sollte nicht so schlimm sein kann man ja dann später filtern aber wie kann ich nach 2 installierten Programmen suchen?
 
Hi,

wie wäre es die Batch einfach zweimal aufzurufen und das gewünschte Programm (also den "DisplayName") als Parameter zu übergeben? Oder du kopierst einfach den Code zweimal in deine Batch und machst einmal DisplayName1 und einmal DisplayName2. Oder du machst eine Schleife... oder oder oder :)

Wobei ich zum Parameter raten würde.

Was genau machst du eigentlich? Wäre es nicht schön langsam einfacher, das ganze in einer "echten" Programmiersprache in ein "echtes" Programm zu schreiben?

VG,
Mad
 
mit dem "echten" Programm hab ich auch schon überlegt, aber es müsste doch möglich sein die installierten Programme anzeigen zu lassen und dann bestimmte Programme aus der Datei zu filtern.
Gibt es keine andere Möglichkeit als den Code so oft hintereinander rein zu schreiben? Oder kann man nur nach den "richtigen" Programmen suchen, so das Patches, Updates und alles ander nicht angezeigt wird?
 
Hi,

wie gesagt, ich würde mit Parametern arbeiten wenn es denn eine Batch sein muss. Alle Parameter zählen und eine Schleife so oft durchlaufen lassen, bis du alle Parameter durch hast. Ich denke, das müsste mit Batch-Dateien auch funktionieren. Dann hast du es in einer Datei und kannst der Reihe nach die Parameter (Programmnamen) abarbeiten.

VG,
Mad
 
Zurück
Oben