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 In .txt nach einem, teils bekannten Ausdruck suchen und als Variable setzen

Mitglied: ov3rclock3d

ov3rclock3d (Level 1) - Jetzt verbinden

01.12.2008, aktualisiert 20:31 Uhr, 3844 Aufrufe, 5 Kommentare

Hallo erstmal, bin neu hier und habe sogleich schon eine Frage, die mich bereits lange Zeit verfolgt.
Ich hoffe, dass ihr mir helfen koennt..

Ich habe eine test.txt Datei mit variierendem Inhalt. Irgendwo in dieser test.txt ist ein Ausruck "btp=XXXXXXX" ohne ", wobei die Xe Platzhalter sind, da der Wert, der fuer btp steht auch variiert. Nun wuerde ich gerne den kompletten Ausdruck als Variable haben. Nach dem "btp=" folgen noch genau 7 Stellen, das ist sicher, jedoch ändert sich die Position des Ausdrucks in der test.txt und ist mir somit unbekannt. Ich hoffe, ihr versteht mein Problem. Bitte bitte, helft mir (-:
Mitglied: Silentd
01.12.2008 um 15:11 Uhr
Mit der Wildcard "btp=*" würde es unter anderem funktionieren. Ohne die ""
Bitte warten ..
Mitglied: ov3rclock3d
01.12.2008 um 15:21 Uhr
Oh tut mir Leid, ich hab' vergessen zu erwaehnen, dass der Ausdruck nicht alleine dasteht. zB "abcbtp=1234567xyz
Der Platzhalter * würde dann ja für 1234567xyz stehen oder hab' ich das falsch verstanden? Ich brauche aber das btp=1234567 alleine.
Bitte warten ..
Mitglied: bastla
01.12.2008 um 16:26 Uhr
Hallo ov3rclock3d und willkommen im Forum!

Da sich offensichtlich der gesuchte String mitten im Text (und nicht alleine in einer Zeile) befindet, macht das nur mit Batch nicht wirklich Spaß - daher ein Batch mit einem Stück (integriertem) VBScript:
01.
@echo off & setlocal 
02.
set "Datei=D:\test.txt" 
03.
set "Suche=btp=" 
04.
set Stellen=11 
05.
 
06.
set G=%temp%\GetString.vbs 
07.
>%G%  echo T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll 
08.
>>%G% echo P=InStr(T,"%Suche%"):If P^>0 Then WScript.Echo Mid(T,P,%Stellen%) 
09.
set "Wert=nicht gefunden" 
10.
for /f "delims=" %%i in ('cscript %G% "%Datei%"') do set "Wert=%%i" 
11.
echo %Wert%
Da nach dem Suchbegriff noch genau 7 Stellen folgen, sind insgesamt 11 Stellen auszulesen - deswegen die Zuweisung in Zeile 4.

Zu beachten wäre noch, dass in dieser Fassung Groß-/Kleinschreibung beachtet und daher zB "Btp=" nicht gefunden wird ...

Grüße
bastla
Bitte warten ..
Mitglied: ov3rclock3d
01.12.2008 um 20:15 Uhr
Danke bastla!
Fuer mich ziemlich kompliziert, da auch noch VBScript dazu kommt aber ich kann mir die Funktionen teils denken, super danke, funktioniert ohne Probleme!
Bitte warten ..
Mitglied: bastla
01.12.2008 um 20:31 Uhr
Hallo ov3rclock3d!

Das VBScript ist ja halb so wild :
T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll
Damit wird der gesamte Inhalt der an das Script übergebenen Datei ("WScript.Arguments(0)") in eine Text-Variable eingelesen - es entsteht also eine einzige Zeichenkette.

P=InStr(T,"%Suche%")
Innerhalb dieser Zeichenkette wird die Zeichenposition, an welcher der Suchbegriff (direkt aus dem Batch übernommen) zum ersten Mal gefunden wird, ermittelt.

If P>0 Then WScript.Echo Mid(T,P,%Stellen%)
Nur, wenn diese Position größer als Null ist, wurde der gesuchte Text tatsächlich gefunden - dann kann aber auch, beginnend an dieser Position, ein Teil, dessen Länge durch die Stellenanzahl (ebenfalls vom Batch geliefert) festgelegt wird, ausgegeben werden.

Diese Ausgabe - so es denn eine gibt (auch die Möglichkeit "nicht gefunden" muss ja berücksichtigt werden) - wird in der "for"-Schleife schließlich der Batchvariablen %Wert% zugewiesen. Finito.
Der Batch selbst ist ja nur ein Rahmen für das Script - dass er es auch selbst erzeugt, hat den Vorteil, nur eine einzige Datei "verwalten" zu müssen.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Nummer suchen und als Variable setzen
gelöst Frage von Nick.BBatch & Shell7 Kommentare

Ich stehe vor einem Problem und hoffe es kann mir jemand helfen. Ich habe eine Textdatei in der eine ...

Batch & Shell

Inhalt einer .txt als eine Variable setzen mit Batch

gelöst Frage von AlexIOTBatch & Shell3 Kommentare

Hallo Zusammen, In der Variable.txt steht immer nur ein einziger Rechnername! - wie folgt: EW085IDFV001 Ich möchte das dieser ...

PHP

TXT Datei auslesen und bestimmte Zeilen in Variable setzen

gelöst Frage von 126594PHP11 Kommentare

Hallo zusammen, vorweg muss ich sagen, ich bin (bis jetzt) absoluter Neuling was PHP angeht. Ich will aus einer ...

Batch & Shell

Variable setzen können während timeout

Frage von DontFlameMeITryMyBestBatch & Shell3 Kommentare

Guten Tag miteinander. Ich habe nun heute mein so ziemlich erstes Programm mit Batch geschrieben. Es soll für mich ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 14 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 20 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 23 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...