Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Wort in txt finden und Zeile in andere txt schreiben

Frage Entwicklung Batch & Shell

Mitglied: 77575

77575 (Level 1)

11.06.2009, aktualisiert 18:23 Uhr, 4218 Aufrufe, 3 Kommentare

hallo,
gleich vorab, ja ich habe die suchfunktion und ich habe auch mid. 2 beiträge gefunden, die genau mein problem darstellen. aber die lösungen funktionieren nicht.
z. bsp. dieser beitrag: http://www.administrator.de/index.php?content=117014

nun zu meiner frage bzw. problem.
ich exportiere aus der registry einen key in eine textdatei. die txt sieht dann so aus:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\00002109010090400000000000F01FEC
ProductName REG_SZ Microsoft Software Update for Web Folders (English) 12
PackageCode REG_SZ B7B7E888CEAAC854EADD4FDFDB421F28
Language REG_DWORD 0x409
Version REG_DWORD 0xc001919

....usw
die Datei ist relativ groß.
jetzt möchte ich alle Einträge für ProductName in eine neue Textdatei schreiben.
D.h. dieser String kommt öfters vor. Optimal wäre es wenn man gleich das ProductName REG_SZ löschen könnte und so nur der reine Wert von Produktname übrig bleibt.
in diesem Beispiel also Microsoft Software Update for Web Folders (English) 12


Probiert habe ich folgenden BatchCode
01.
@echo off & setlocal 
02.
 
03.
set Quelle="D:\test\regausgabe.txt" 
04.
set Ausgabe="D:\test\MeineAusgabe.txt" 
05.
for /f "tokens=2 delims=:" %%i in ('findstr "ProductName	REG_SZ	" %Quelle%') do set Wert=%%i 
06.
set SoftwareName=%Wert:~1,8% 
07.
 
08.
echo %SoftwareName%>> %Ausgabe%  
09.
endlocal
aber alles was in der MeineAusgabe.txt steht ist WINDOWS\

Hoffe ein Batchspezi kann mir helfen.

gruss 01-01-01
Mitglied: bastla
11.06.2009 um 19:41 Uhr
Hallo 01-01-01!

Versuch's so:
01.
@echo off & setlocal 
02.
 
03.
set Quelle="D:\test\regausgabe.txt" 
04.
set Ausgabe="D:\test\MeineAusgabe.txt" 
05.
for /f "tokens=2*" %%i in ('findstr /c:"ProductName    REG_SZ" %Quelle%') do >>%Ausgabe% echo %%j
Grüße
bastla
Bitte warten ..
Mitglied: 77575
11.06.2009 um 20:29 Uhr
hi bastla,

super, vielen dank.
auch wenn ich die tokens und delims nie verstehen werde

hier das komplette test script, falls mal jemand vor dem selben problem steht.

01.
@echo off & setlocal 
02.
 
03.
set tmpFile="%temp%\uninst.tmp" 
04.
set Ausgabe="%temp%\software.txt" 
05.
reg query  HKLM\SOFTWARE\Classes\Installer\Products /s >%tmpFile% 
06.
 
07.
for /f "tokens=2*" %%i in ('findstr /c:"ProductName	REG_SZ	" %tmpFile%') do >>%Ausgabe% echo %%j 
08.
 
09.
:: aufräumen 
10.
del /Q %tmpFile% 
11.
set tmpFile= 
12.
set Ausgabe= 
13.
 
14.
:: schau 'ma mal was das ergebnis is 
15.
start notepad.exe %Ausgabe%
Bitte warten ..
Mitglied: bastla
11.06.2009 um 20:47 Uhr
Hallo 01-01-01!

Freut mich, wenn's passt ...

auch wenn ich die tokens und delims nie verstehen werde
Standard-Delimiter sind Leerzeichen und TAB (daher muss hier auch gar kein spezielles Trennzeichen angegeben werden), und was die "tokens" angeht: bis 3 zählen kannst Du doch, und mehr passiert hier auch nicht :
ProductName REG_SZ Microsoft Software Update for Web Folders (English) 12 
^ Token 1 ^ ^ T2 ^ ^ Token * = alles nach 2 ohne weitere Unterteilung   ^ 
^ignoriert^ ^%%i ^ ^ %%j                                                ^
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...