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

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, 6269 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 Per Batch Textstellen vertauschen (7)

Frage von tefracky zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmten Bereich einer Textdatei ausgeben mittels Batch (10)

Frage von Django.Durano zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst In allen Textdateien eines bestimmten Pfades die Zeilen x bis Ende löschen (2)

Frage von Schloth zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

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