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, 822 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch zum auslesen bestimmter Einträge der IPconfig mit for-Schleifen (12)

Frage von Dantaros zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (3)

Frage von Zendara zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Viren und Trojaner
Ransomware .nm4 (14)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...

Zusammenarbeit
Administrator Verhalten nach Vertragskündigung (10)

Frage von sysbone zum Thema Zusammenarbeit ...