Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Findstr zwei Variablen finden in txt datei

Mitglied: zimbo2150

zimbo2150 (Level 1) - Jetzt verbinden

17.01.2012 um 15:55 Uhr, 3968 Aufrufe, 6 Kommentare

hallo,

ich versuche aus einer text datei zwei häufig vorkommende Variablen zu finden.

und zwar habe ich mittels regedit mit den Key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
ausgelesen und dann als txt gespeicher sieht dann so aus:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe AIR]
"DisplayIcon"="c:\\PROGRA~1\\COMMON~1\\ADOBEA~1\\Versions\\1.0\\RESOUR~1\\ADOBEA~1.EXE"
"DisplayName"="Adobe AIR"
"DisplayVersion"="2.7.1.19610"
"InstallLocation"="c:\\Program Files\\Common Files\\Adobe AIR\\"
"NoModify"=dword:00000001
"NoRepair"=dword:00000001
"Publisher"="Adobe Systems Incorporated"
"UninstallString"="c:\\Program Files\\Common Files\\Adobe AIR\\Versions\\1.0\\Resources\\Adobe AIR Updater.exe -arp:uninstall"
"VersionMajor"=dword:00000002
"VersionMinor"=dword:00000007
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player Plugin]
"DisplayName"="Adobe Flash Player 10 Plugin"
"Publisher"="Adobe Systems Incorporated"
"DisplayVersion"="10.3.183.5"
"HelpLink"="http://www.adobe.com/go/flashplayer_support/"
"NoModify"=dword:00000001
"NoRepair"=dword:00000001
"RequiresIESysFile"="4.70.0.1155"
"URLInfoAbout"="http://www.adobe.com"
"URLUpdateInfo"="http://www.adobe.com/go/getflashplayer/"
"VersionMajor"=dword:0000000a
"VersionMinor"=dword:00000003
"UninstallString"="C:\\Windows\\system32\\Macromed\\Flash\\FlashUtil10v_Plugin.exe -maintain plugin"
"DisplayIcon"="C:\\Windows\\system32\\Macromed\\Flash\\FlashUtil10v_Plugin.exe"
"EstimatedSize"=dword:00001800

ich brauche nun aus dieser Liste die Einträge DisplayName und DisplayVersion

was ich bis jetzt hinbekommen hab ist

for /f "tokens=2 delims==" %i ('type inst.txt^|find "DisplayName"') do  
@echo %i 
wie bekomme ich die Ausgabe so, dass ich immer ( sofern Vorhanden ) DisplayName und Display Version augegeben werden

Zum Hintergrund:
Ich schreiben grade an meiner BachelorThesis und soll die Softwareliste von Windows über Fernzugriff auslesen und dann in eine Datenbank schreiben

Danke für eure Hilfe
Mitglied: bastla
17.01.2012 um 16:09 Uhr
Hallo zimbo2150 und willkommen im Forum!

Um mehrere Suchbegriffe zu finden, kannst Du "findstr" (wie Du lt Threadtitel ohnehin schon erkannt haben dürftest ) verwenden - etwa:
01.
for /f "tokens=2 delims==" %i ('findstr "DisplayName DisplayVersion" inst.txt') do  @echo %i
Wenn es umeine größere Anzahl vonSuchbegriffen oder solche mit Leerzeichen ginge, wäre die Alternative "/g:" mit einer Liste der Suchbegriffe in Dateiform zu verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: zimbo2150
17.01.2012 um 16:21 Uhr
Zitat von bastla:
Hallo zimbo2150 und willkommen im Forum!
Danke
und Danke für die schnelle Antwort

Zitat von bastla:
Um mehrere Suchbegriffe zu finden, kannst Du "findstr" (wie Du lt Threadtitel ohnehin schon erkannt haben
dürftest ) verwenden - etwa:
01.
for /f "tokens=2 delims==" %i ('findstr "DisplayName DisplayVersion" inst.txt') do  
02.
> @echo %i 
03.
> 
Wenn es umeine größere Anzahl vonSuchbegriffen oder solche mit Leerzeichen ginge, wäre die Alternative
"/g:" mit einer Liste der Suchbegriffe in Dateiform zu verwenden ...

Grüße
bastla

hab ich probiert aber ohne Ergebnis
habe auch diese Version geteste
01.
for /f "tokens=2 delims==" %i ('findstr "DisplayName" inst.txt') do @echo %i 
Bitte warten ..
Mitglied: bastla
17.01.2012 um 19:21 Uhr
Hallo zimbo2150!

Ändert sich das Ergebnis, wenn Du das fehlende "in" (hatte ich vorhin leider auch übersehen) ergänzt?
for /f "tokens=2 delims==" %i in ('findstr "DisplayName DisplayVersion" inst.txt') do @echo %~i
Grüße
bastla
Bitte warten ..
Mitglied: zimbo2150
18.01.2012 um 10:12 Uhr
Zitat von bastla:
Ändert sich das Ergebnis, wenn Du das fehlende "in" (hatte ich vorhin leider auch übersehen)
ergänzt?
for /f "tokens=2 delims==" %i in ('findstr "DisplayName DisplayVersion" inst.txt') do @echo %~i 


hi bei deiner Version kam immer die Frage "mehr?" in einer endlos Schleife.

hab jetzt diese Version zum laufen gebracht

 for /f "tokens=2 delims==" %i in ('type inst.txt^|findstr "DisplayName DisplayVersion"') do @echo %i 
Mein neues Problem ist nun, mir ist aufgefallen das in der Registry Ausgabe also der inst.txt die Anordnung von DisplayName und DisplayVersion manchmal vertauscht wird und manchmal fehlt.
wie kann ich denn die Auagabe pro Key machen also das er [HKEY_LOCAL_MACHINE\ sucht dann DisplayVersion und DisplayName

  
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FDB3B167-F4FA-461D-976F-286304A57B2A}] 
"AuthorizedCDFPrefix"="" 
"Comments"="" 
"Contact"="" 
"DisplayVersion"="2.7.1.19610" 
"HelpLink"="" 
"HelpTelephone"="" 
"InstallDate"="20110924" 
"InstallLocation"="c:\\Program Files\\Common Files\\Adobe AIR\\" 
"InstallSource"="c:\\users\\j8910~1\\appdata\\local\\temp\\air73d7.tmp\\" 
"ModifyPath"=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,78,\ 
  00,65,00,20,00,2f,00,49,00,7b,00,46,00,44,00,42,00,33,00,42,00,31,00,36,00,\ 
  37,00,2d,00,46,00,34,00,46,00,41,00,2d,00,34,00,36,00,31,00,44,00,2d,00,39,\ 
  00,37,00,36,00,46,00,2d,00,32,00,38,00,36,00,33,00,30,00,34,00,41,00,35,00,\ 
  37,00,42,00,32,00,41,00,7d,00,00,00 
"Publisher"="Adobe Systems Incorporated" 
"Readme"="" 
"Size"="" 
"EstimatedSize"=dword:0000788b 
"SystemComponent"=dword:00000001 
"UninstallString"=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,\ 
  78,00,65,00,20,00,2f,00,49,00,7b,00,46,00,44,00,42,00,33,00,42,00,31,00,36,\ 
  00,37,00,2d,00,46,00,34,00,46,00,41,00,2d,00,34,00,36,00,31,00,44,00,2d,00,\ 
  39,00,37,00,36,00,46,00,2d,00,32,00,38,00,36,00,33,00,30,00,34,00,41,00,35,\ 
  00,37,00,42,00,32,00,41,00,7d,00,00,00 
"URLInfoAbout"="" 
"URLUpdateInfo"="" 
"VersionMajor"=dword:00000002 
"VersionMinor"=dword:00000007 
"WindowsInstaller"=dword:00000001 
"Version"=dword:02070001 
"Language"=dword:00000409 
"DisplayName"="Adobe AIR" 
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}] 
"AuthorizedCDFPrefix"="" 
"Comments"="" 
"Contact"="" 
"DisplayVersion"="9.0.21022" 
"HelpLink"="" 
"HelpTelephone"="" 
"InstallDate"="20110720" 
"InstallLocation"="" 
"InstallSource"="c:\\2d32e62a9c659edb17380f67802d\\" 
"ModifyPath"=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,78,\ 
  00,65,00,20,00,2f,00,58,00,7b,00,46,00,46,00,36,00,36,00,45,00,39,00,46,00,\ 
  36,00,2d,00,38,00,33,00,45,00,37,00,2d,00,33,00,41,00,33,00,45,00,2d,00,41,\ 
  00,46,00,31,00,34,00,2d,00,38,00,44,00,45,00,39,00,41,00,38,00,30,00,39,00,\ 
  41,00,36,00,41,00,34,00,7d,00,00,00 
"NoModify"=dword:00000001 
"NoRepair"=dword:00000001 
"Publisher"="Microsoft Corporation" 
"Readme"="" 
"Size"="" 
"EstimatedSize"=dword:000005a6 
"UninstallString"=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,\ 
  78,00,65,00,20,00,2f,00,58,00,7b,00,46,00,46,00,36,00,36,00,45,00,39,00,46,\ 
  00,36,00,2d,00,38,00,33,00,45,00,37,00,2d,00,33,00,41,00,33,00,45,00,2d,00,\ 
  41,00,46,00,31,00,34,00,2d,00,38,00,44,00,45,00,39,00,41,00,38,00,30,00,39,\ 
  00,41,00,36,00,41,00,34,00,7d,00,00,00 
"URLInfoAbout"="" 
"URLUpdateInfo"="" 
"VersionMajor"=dword:00000009 
"VersionMinor"=dword:00000000 
"WindowsInstaller"=dword:00000001 
"Version"=dword:0900521e 
"Language"=dword:00000409 
"DisplayName"="Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022" 
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{D0795B21-0CDA-4a92-AB9E-6E92D8111E44}\25_escape] 
"DisplayName"="SAMSUNG USB Driver for Mobile Phones" 
"UninstallString"="C:\\Program Files\\Samsung\\USB Drivers\\25_escape\\Uninstall.exe" 
"DisplayVersion"="2.9.201.1018" 
"URLInfoAbout"="http://www.samsungmobile.com" 
"Publisher"="SAMSUNG Electronics Co., Ltd." 
"Version"="2.9.201.1018"    
Bitte warten ..
Mitglied: icsat
18.01.2012 um 11:09 Uhr
Hallo zimbo2150,

Zitat von zimbo2150:
wie kann ich denn die Auagabe pro Key machen
Die Ausgabe ist doch pro Key, da der "findstr" die Eingabedatei sequentiell abarbeitet.
So werden z.B. die trennenden "HKEY_LOCAL_MACHINE" mit ausgegeben:
01.
for /f "tokens=1, 2 delims==\" %i in ('type inst.txt^|findstr "DisplayName DisplayVersion HKEY_LOCAL_MACHINE"') do @if "%i"=="[HKEY_LOCAL_MACHINE" (@echo %i) else (@echo %j)
Ich würde bei deiner Problemstellung allerdings anders vorgehen und mich vom Einzeiler verabschieden. Kurz skizziert:
  • Variablen zum zwischenspeichern auf Dummywerte setzen
  • sequentielles lesen der Eingabedatei
  • zwischenspeichern der Namens- und Versionswerte in entsprechende Variablen
  • beim Gruppenwechsel (Zeile HKEY_LOCAL_MACHINE) Ausgabe der Daten in die Datenbank und Variablen zurück auf Dummy

Viel Spaß und viel Erfolg bei Deiner BachelorThesis. Was für ein Bachelor soll dabei denn rauskommen?


Gruß icsAT
Bitte warten ..
Mitglied: zimbo2150
18.01.2012 um 13:08 Uhr
icsat: bastla:

Danke für eure Hilfe und vor allem so schnell. Setz den Beitrag als gelöst.

Es soll man der B.Sc. Kommunikationsinformatik rauskommen noch 6 Wochen dann ist Abgabe
Bitte warten ..
Ähnliche Inhalte
Windows 7
Txt Datei mit findstr durchsuchen
gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Batch & Shell
Variablen aus Txt datei erstellen
Frage von Ghost-7KBatch & Shell3 Kommentare

Guten Tag die Damen und Herren, ich sitze gerade daran für meine Firma ein batch zur Sicherung von Disketten ...

Batch & Shell

In Batch FINDSTR in Variable und auch noch kuerzen

gelöst Frage von deathwormBatch & Shell2 Kommentare

Hallo! Ich habe folgendes Problem. Beim verschluesseln von Festplatten wird ein Key generiert und dieser in eine TXT Datei ...

Batch & Shell

Zwei fragen zu findstr

gelöst Frage von netlordBatch & Shell8 Kommentare

Hallo Administratoren ;) ich habe zwei Fragen zu findstr 1.) wir haben Rechner mit unterschiedlicher Anzahl von Raid-Controllern. Diese ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 4 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 13 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless15 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit14 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...