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, 3834 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
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 49 MinutenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 4 StundenCPU, RAM, Mainboards3 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 18 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...