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, 6203 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby zum Thema Batch & Shell ...

IDE & Editoren
gelöst IP und DNS per Batch ändern (9)

Frage von andyw5 zum Thema IDE & Editoren ...

Visual Studio
gelöst VBS schreibt bestimmte Variable nicht in Textdatei (11)

Frage von Saschaaaaa zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...