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

Bestimmte Textstellen (immer fest) einer Textdatei per Batch ändern

Frage Entwicklung Batch & Shell

Mitglied: daki

daki (Level 1) - Jetzt verbinden

07.03.2011 um 08:48 Uhr, 6236 Aufrufe, 5 Kommentare

Hallo Forum,

ich habe hier eine Textdatei mit Tankstellenauswertungen. Zeilenweise sieht die Datei z.B. so aus:

A0000656000000001200000000003039860005058000000261110212500E

Aussehen soll die Datei aber nach der Bearbeitung so:

A1300656000001301200000000003039860005058000000261110212500E

Das heisst:

Die Stellen 2-3 sollen von "00" auf "13" abgeändert werden, genau wie die stellen 14-15 von "00" auf "13" abgeändert werden sollen.

Die länge des Datensatzes ist immer gleich, es soll einfach immer egal was drinsteht 2-3 und 14-15 auf "13" geändert werden, und zwar bei jeder Zeile.

dürfte normal möglich sein, da ich es mit 2-3 schon geschafft habe. (Einfach A00 durch A13 ersetzen) jedoch wünsche ich mir was handfestes welches nicht zwingend "00" als Vorlage voraussetzt.

vielen Dank für die Hilfe

mfG

Daniel
Mitglied: Ralph4
07.03.2011 um 09:29 Uhr
Hallo Daniel,

dies ist nicht ganz so einfach es sei denn die ersten 15 Ziffern sind immer gleich, wovon ich erst einmal nicht ausgehe.
Aus diesem Grunde benötigst du ein parser Progamm weilches die betreffenden Positionen (2und3 sowie 14 und 15) austauscht und danach die Datei wieder schließt.
Ich würde dieses, an deiner Stelle, im VBS programmieren. Hier ein Link der dir vieleicht weiterhilft.
http://www.lockergnome.com/sqlsquirrel/2007/12/18/how-to-parse-a-text-f ...
Bitte warten ..
Mitglied: pieh-ejdsch
07.03.2011 um 10:31 Uhr
moin daki,

Verwirrung...
sollen die Zeichen nun nur ersetzt werden, wenn es nur bestimmte Zeichen an den Entsprechenden Stellen sind oder ist es egal, was an diesen Stellen steht?

Gruß Phil
Bitte warten ..
Mitglied: Snowman25
07.03.2011 um 10:33 Uhr
Zitat von Ralph4:
dies ist nicht ganz so einfach es sei denn die ersten 15 Ziffern sind immer gleich

Wozu müssen die immer gleich sein? Muss man halt den String in Stückchen schneiden und ändern. Stört doch nicht SO arg.


Hallo daki,

Du könntest mal folgende Batch ausprobieren:
01.
@Echo off && setlocal enabledelayedexpansion 
02.
set Quelle=test.txt 
03.
set Ziel=test_neu.txt 
04.
for /F %%A in (%Quelle%) do ( 
05.
	if NOT %%A=="" ( 
06.
		call :procLine %%A 
07.
08.
09.
 
10.
goto eof 
11.
 
12.
:procLine 
13.
set string_0=%1 
14.
set string_1=%string_0:~0,1% 
15.
set string_2=%string_0:~3,10% 
16.
set string_3=%string_0:~15% 
17.
set string_full=%string_1%13%string_2%13%string_3% 
18.
echo %string_full%>>%Ziel% 
19.
 
20.
:eof
Quelle und Ziel natürlich nach Bedarf anpassen.

Gruß
Snow
Bitte warten ..
Mitglied: 60730
07.03.2011 um 10:47 Uhr
Moin,

angenommen es ist immer die gleiche Textdatei...
...und immer die gleichen zu ersetzenden Werte an der gleichen Stelle...

01.
setlocal 
02.
for /f %%a in (C:\script\searchNreplace\zahlen\org.ini) do set line=%%a & call:searchnreplace 
03.
goto :eof 
04.
:searchnreplace 
05.
if %line:~1,2%=00 if %line:~14,2%==00 echo %line:~0,1%13%line:~4,13%13%line:~16%>>C:\script\searchNreplace\zahlen\new.ini
Ich hoffe, du kannst das nachvollziehen.

Gruß

edit zu langsam - dafür aber ohne das @echo off (dafür aber auch ohne setlocal)
edit² - den Einwand von Pietsch hab ich durch die ganzen Ifs vor dem Echo einfach mal vorausgesetzt - falls das nicht so wäre - wie ich es gedacht habe, einfach die ifs weg lassen.
Bitte warten ..
Mitglied: daki
07.03.2011 um 14:18 Uhr
Hallo an Alle,

ich habe das Skript von Snowman25 probiert und - PERFEKT.

Ich danke auch allen anderen für Ihre Lösungen aber für mich ist das Problem hiermit erledigt und ich bedanke mich recht herzlich.

mfG

Daniel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(3)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (11)

Frage von keine-ahnung zum Thema Exchange Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...