Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Einen definierte Anzahl Zeichen aus den Zeilen einer Textdatei entfernen

Frage Entwicklung Batch & Shell

Mitglied: jabali07

jabali07 (Level 1) - Jetzt verbinden

24.10.2007, aktualisiert 25.10.2007, 10153 Aufrufe, 4 Kommentare

Moin zusammen,

vielleicht hat ja jemand von Euch eine Idee für mein Problem...

Aus einem Prozeß, auf den ich leider keinen Einfluss habe, erhalte ich täglich eine Textdatei, Namens "Checkcodes.txt".
In jeder Zeile der Textdatei muss stets das 16. bis einschließlich 23.Zeichen entfernt (ausgeschnitten) werden, um die Datei weiter verwursten zu können.

Beispielzeile:

Aus dem Prozeß kommt: (Der Zeitcode ist dummerweise immer doppelt vorhanden.)

XTLJ_ 10/02/07 12:16:40 12:16:40 12 XCOO7A2H1W.FR2


So muss es später aussehen:

XTLJ_ 10/02/07 12:16:40 12 XCOO7A2H1W.FR2


Eine aufwendige und zitterige Handarbeit, die meine Haare ergrauen läßt.

Die Anzahl der Zeilen dieser täglich neu erstellten Textdatei variiert leider immer.
Kann man da trotzdem eine Batch-Routine finden, die diese Aufgabe bewältigt?

Herzliche Grüße und vielen Dank vorab für Eure Mühe
Jabali07
Mitglied: miniversum
24.10.2007 um 12:33 Uhr
Wenn du immer genau diese anzahl an Zeichen wilslt dann versuchs mal so:
@echo off
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "delims=" %%l in ("%infile%") do echo %%l:~0,15%%l:~16>>"%outfile%"

Wenn das Format immer so bleibt und du dich an den Leerstellen orientieren kannst dann kannst dus so versuchen:
@echo off
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "tokens=1,2,3,5,6 delims= " %%a in ("%infile%") do echo %%a %%b %%c %%d %%e %%f>>"%outfile%"

miniverusm
Bitte warten ..
Mitglied: ITwissen
24.10.2007 um 13:27 Uhr
Falls das OS zufaelligerweise GNU/Linux waere, geht es so:

01.
cut -b1-15,24- < Checkcodes.txt > output.txt
Bitte warten ..
Mitglied: bastla
24.10.2007 um 21:27 Uhr
@miniversum
Da für Laufvariable die zeichenweise Zerlegung nicht vorgenommen werden kann, musst Du die eingelesene Zeile zunächst einer weiteren Variable zuweisen, was (zur Vermeidung der "delayedexpansion") in einem Unterprogramm erfolgen sollte, also etwa:
01.
@echo off & setlocal 
02.
set "infile=C:\Checkcodes.txt" 
03.
set "outfile=C:\Checkcodes_cut.txt" 
04.
if exist "%outfile%" del "%outfile%" 
05.
FOR /F "usebackq delims=" %%L in ("%infile%") do call :ProcessLine "%%L" 
06.
goto :eof 
07.
 
08.
:ProcessLine 
09.
set "Line=%~1" 
10.
(echo %Line:~0,15%%Line:~24%)>>"%outfile%"
Die Variante 2 benötigt auch noch kleinere Anpassungen:
01.
@echo off & setlocal 
02.
set "infile=c:\eingangsdatei.txt" 
03.
set "outfile=c:\ausgangsdatei.txt" 
04.
if exist "%outfile%" del "%outfile%" 
05.
FOR /F "usebackq tokens=1,2,3,5,6" %%a in ("%infile%") do (echo %%a %%b %%c %%d %%e)>>"%outfile%"
Grüße
bastla
Bitte warten ..
Mitglied: jabali07
25.10.2007 um 11:41 Uhr
@all: Herzlichen Dank für die Mühe und die prompte Hilfe an alle.

Den zweiten Vorschlag von miniverusm hatte ich mir gestern noch "zurechtgeschüttelt". Funktioniert bestens.

Die beiden 'batches' von bastla habe ich dann heute auch laufen lassen. Simply Perfekt!

Eine riesen Arbeitserleichterung für mich. Nochmals Dankeschön!

Gruß jabali07
Bitte warten ..
Ähnliche Inhalte
Ubuntu
gelöst Bash-Script um aus einer Textdatei alle HTML-Tags zu entfernen. Hilfe! (4)

Frage von takitano zum Thema Ubuntu ...

Batch & Shell
gelöst Komplette Zeile aus Textdatei auslesen (3)

Frage von tegwert zum Thema Batch & Shell ...

Batch & Shell
gelöst Erstellungsdatum vor jede Zeile einer Textdatei schreiben (5)

Frage von freakonaleash zum Thema Batch & Shell ...

Batch & Shell
Jede Zeile einer Textdatei in eigene Variable speichern (5)

Frage von tomaschku zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (13)

Frage von Spitzbube zum Thema Netzwerke ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...