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

Batch String ab flexiebler Länge in fixer Länge Zeichen auslesen oder extrahiere aus String ab der Stelle XXX in der Länge YYY

Frage Entwicklung Batch & Shell

Mitglied: 86longrunner

86longrunner (Level 1) - Jetzt verbinden

24.02.2015, aktualisiert 10:52 Uhr, 792 Aufrufe, 2 Kommentare

Hallo,

ins Forum, als Newbie hier meine erste Frage und freue mich auf eure Unterstützung:

nach langem Suchen habe ich leider keine Lösung für mein Problem gefunden:

Ich habe eine Datei in unstrukturiertem Format an komplett verscheiderner Stelle kann die gesuchte Information stehen.
Beispieldatensatz:
‚%A]!!!‚@
5hs://ccce/wcs/j_security_checkj_username0001904594j_password ...und so weiter

Das einzige fixe Kirterium ist die Textzeile "checkj_username" ab dieser Textstelle (welche immer an unterscheidlicher Position in der Datei steht).

Mein Problem: Nach der Stelle checkj_username muß ich die Werte in der Länge von 10 Zeichen extrahieren.

Mein Ansatz:

for /f "tokens=*" %%i in ('find /n "checkj_username" d:\test.txt') do echo %%i | find "checkj_username" > nul && call :AWC_User %%i

:AWC_User
set _Satz="%*"

In %_Satz% ist soweit dieser Inhalt:

"[jlk6631]‚IY uoafgfg-rrrr.de/wcsdsds/uips:/-test-wcs.wdfdf.de/wswd/j_security_checkj_username5555555555j_password"
"[666576765775]‚3]]
asdf.oity_checkps://atrtr.oadfg.de/wcs/j_security_checkj_username5555555555j_password"

Jetzt sollte ich ab der Stelle nach ...username die nächsten 10 Stellen.

Nachtrag: Vereinfacht ausgedrückt suche ich nach einer Funktion/Routine in Batch welche dem Befehl "Extrahiere aus String; ab der StelleXXX; in der LängeXXX


Vielen Dank für eure Hilfe
Longrunner


Mitglied: 114757
LÖSUNG 24.02.2015, aktualisiert um 11:18 Uhr
Moin,
z.B. so
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /f "tokens=*" %%i in ('find /n "checkj_username" d:\test.txt') do ( 
03.
   set "line=%%i" 
04.
   set "line=!line:checkj_username=#!" 
05.
   for /f "tokens=2 delims=#" %%a in ("!line!") Do ( 
06.
     set "number=%%a" 
07.
     set "number=!number:~0,10!" 
08.
     echo !number! 
09.
10.
)
Ansonsten ist auch sed dein Freund denn mit Regular Expressions ist das ebenfalls ein Klacks...

oder mit Hilfe der Powershell ebenfalls kein Thema:
01.
Powershell -Executionpolicy Bypass -Command "&{[regex]::match((gc 'd:\test.txt'),'checkj_username(\d{10})').Groups[1].Value}"
Gruß jodel32
Bitte warten ..
Mitglied: 86longrunner
24.02.2015 um 10:52 Uhr
Hallo Jodel,

vielen Dank für deine schnelle Lösung klappt perfekt!

VG
Longrunner
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...