Top-Themen

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 Batch - String suchen und in der Datei Zeile mit berechneten Inhalt einfügen

Mitglied: loony666

loony666 (Level 1) - Jetzt verbinden

11.02.2008, aktualisiert 12:57 Uhr, 11837 Aufrufe, 5 Kommentare

Hallo Batch-Experten,

ich habe folgendes vor:
Meine Textdateien, welche per Job verarbeitet werden, enthalten einen String an einer oder auch mehr Stellen einer Textdatei.
Wenn der String erkannt wird, soll die Zeile kopiert, bearbeitet und unter der Fundstellenzeile eingefügt werden.
Meine Datei hat die Endung txt. Für die Erklärung nenne ich die Datei beispiel.txt.
Der String, welcher zu suchen ist, heißt AUFP und ist am Zeilenanfang.
Dann soll, wenn Stelle 84-103 mit KIP beginnt, diese Zeile dann in eine Temp.txt kopiert, und diese dann bearbeitet werden.
Bearbeitungsschritte:
- an Stelle 9-15 (Typ nummerisch mit führenden Nullen(0)) * 2 rechnen (Führende Nullen müssen vorhanden sein!)
- an Stelle 49-78 ersetzen durch String LADEHILFSMITTEL
- die Stellen 16-22 auf 000000 setzen (vorhandenen Inhalt überschreiben).

Es kann mehrere Vorkommnisse der Zeile AUFP geben, welche auch immer nach gleicher Logik verarbeitet werden sollen.

Ist dies über Batch möglich?
Und wenn, wie?

Marko
Mitglied: bastla
11.02.2008 um 11:02 Uhr
Hallo loony666!

Vorweg: Es wäre sinnvoll, wenn Du die Daten nicht nur beschrieben, sondern auch einige Beispielzeilen gepostet hättest ...

Soferne ich das Ganze richtig verstanden (und in eigene Testdaten umgesetzt) habe, sollte es etwa so gehen:
01.
@echo off & setlocal 
02.
set "Datei=D:\Beispiel.txt" 
03.
 
04.
set "Bak=%Datei%.bak" 
05.
move "%Datei%" "%Bak%" 
06.
for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine 
07.
 
08.
REM del "%Bak%" 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
echo %Zeile%>>"%Datei%" 
13.
echo %Zeile%|findstr /b "AUFP">nul || goto :eof 
14.
if "%Zeile:~83,3%" neq "KIP" goto :eof 
15.
set /a "Wert=(1%Zeile:~8,7%-10000000)*2 
16.
set "WertNeu=0000000%Wert%" 
17.
set "Ersatz1=0000000" 
18.
set "Ersatz2=LADEHILFSMITTEL               " 
19.
echo %Zeile:~0,8%%WertNeu:~-7%%Ersatz1%%Zeile:~22,26%%Ersatz2%%Zeile:~78%>>"%Datei%" 
20.
goto :eof
Einschränkung: In dieser Version werden ev enthaltene Leerzeilen aus der Textdatei entfernt.

Solange das REM vor dem del "%Bak%" steht, bleibt die ursprüngliche Datei als Sicherungkopie mit dem Zusatz ".bak" erhalten.

Grüße
bastla
Bitte warten ..
Mitglied: loony666
11.02.2008 um 12:02 Uhr
Moin bastla,

vielen Dank für die schnelle Hilfe.
1. Sorry! Werde ab jetzt immer Beispielzeilen einfügen
2. Funktioniert KLASSE!!! Und das ohne Beispielzeile -> Hut ab!

3. Habe eine Sache vergessen:
Die Zeile 84-103 darf in der angefügten Zeile nicht mehr KIP sondern 201 beinhalten.
Jetzt hab ich kräftig rumprobiert, bekomme es aber alleine nicht hin.
Könntest du das evtl erweitern?

Marko
Bitte warten ..
Mitglied: bastla
11.02.2008 um 12:17 Uhr
Hallo loony666!

Ersetze die letzten beiden Zeilen durch
01.
set "Ersatz3=201                 " 
02.
echo %Zeile:~0,8%%WertNeu:~-7%%Ersatz1%%Zeile:~22,26%%Ersatz2%%Zeile:~78,5%%Ersatz3%%Zeile:~103%>>"%Datei%" 
03.
goto :eof
Da ich die Zeilenlänge nicht kenne, habe ich als letzten Teil "%Zeile:~103%" (steht für: alles nach Position 103) hinzugefügt - sollte Deine Zeile nicht mehr als 103 Stellen haben, musst Du diesen Teil wieder entfernen.

Grüße
bastla
Bitte warten ..
Mitglied: loony666
11.02.2008 um 12:35 Uhr
Hallo bastla,

ich bin geschockt! Selbst das klappt zu 100%!

VIELEN DANK!!!!!!!!

Marko
Bitte warten ..
Mitglied: bastla
11.02.2008 um 12:57 Uhr
Hallo loony666!

ich bin geschockt!
... weil ich von 84 bis 103 zählen kann? OK, ich geb's ja zu: Ohne Anzeige der Spaltennummer im Editor wär's verdammt schwer geworden ...

Ich freue mich jedenfalls, wenn's hilft.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Datei durchsuchen und nach String eine zusätzliche Zeile einfügen

gelöst Frage von Borob14Batch & Shell5 Kommentare

Hi zusammen habe schon einiges in der Richtung in diesen und anderen Foren durchgelesen, verstehe den Syntax aber nicht ...

Batch & Shell

Per Batch Datei am Anfang einer .csv einer zeile mit bestimmten Inhalt einfügen und wieder speichern

Frage von FuxxLiBatch & Shell1 Kommentar

Hallo, ich habe folgende Herausforderung. Die Warenwirtschaft des Kunden exportiert nur Dateien mit einer Kopfzeile. Ein Dienstleister benötigt aber ...

Batch & Shell

In config Datei in der 6ten Zeile etwas einfügen

gelöst Frage von legend81Batch & Shell4 Kommentare

Hallo zusammen, ich habe folgendes problem: Ich müsste in eine config.properties in die 6te Zeile etwas einfügen. Es soll ...

Batch & Shell

Batch bestimme Zeile einer vorherigen batch einfügen

Frage von FrenscheBatch & Shell9 Kommentare

Hallo ich möchte eine Batch erstellen, in der ein Befehl ausgeführt wird und von dort aus eine bestimmte Zeile ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke25 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft8 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...