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

Txt Datei (Bord512) durch Batch oder VB Script verändern.

Frage Entwicklung Batch & Shell

Mitglied: DerOri

DerOri (Level 1) - Jetzt verbinden

20.06.2013, aktualisiert 11:53 Uhr, 2356 Aufrufe, 7 Kommentare, 3 Danke

Einen wunder schönen Mittag Zusammen,

ich hab folgendes Problem, wo ich im Moment keine Idee habe wie ich es lösen soll.

Ich hab einen Ordner voller txt. Dateien, deren Inhalt dem BORD512 Standard entspricht.

Zeile1:@@PHSTAT512-0512 Weitere Informationen von Zeile 1
Zeile2:Q0011111111111 Weitere Informationen von Zeile 2
Zeile3:Q102222222222- Weitere Informationen von Zeile 3
Zeile4:Q203333333333- Weitere Informationen von Zeile 4

Bindestriche sind leer Felder

Nun benötige ich eine Batch oder einen VB Script, der von Zeile 3 ab Q10 (also der dritten stelle) die weiteren 11 Stellen Kopiert und die 11 Stellen Ab Q00 in Zeile 2 Überschreibt.

Die weiteren Informationen in beiden Zeilen sollen unberührt bleiben.

Das Ergebnis sollte dann so aussehen:

Zeile1:@@PHSTAT512-0512 Weitere Informationen von Zeile 1
Zeile2:Q102222222222- Weitere Informationen von Zeile 2
Zeile3:Q102222222222- Weitere Informationen von Zeile 3
Zeile4:Q203333333333- Weitere Informationen von Zeile 4

Ich hoffe Ihr könnt verstehen was ich Meine, konnte durch die Suche nichts passendes finden.

Würde mich über Lösungsvorschläge riesig freuen.

Gruß Matze
Mitglied: Endoro
20.06.2013, aktualisiert um 12:33 Uhr
Hallo Matze,

Zitat von DerOri:
Würde mich über Lösungsvorschläge riesig freuen.

es geht sowohl mit Batch als auch mit VBS.
Weil es ein klassischer "search & replace"-Job mit etwas Regex ist, würde ich es mit sed machen.

lg
Bitte warten ..
Mitglied: miniversum
20.06.2013 um 13:36 Uhr
Hallo

Per Batch kannst du es mal damit versuchen:
01.
@echo off 
02.
 
03.
set in="Datei.txt" 
04.
set out="Datei_neu.txt" 
05.
 
06.
set "z1=" 
07.
FOR /F "delims=" %%i in ('type %in%') do if not defined z1 set "z1=%%i" 
08.
set "z2=" 
09.
FOR /F "skip=1 delims=" %%i in ('type %in%') do if not defined z2 set "z2=%%i" 
10.
set "z3=" 
11.
FOR /F "skip=2 delims=" %%i in ('type %in%') do if not defined z3 set "z3=%%i" 
12.
 
13.
set pz2=%z2:~14% 
14.
set pz3=%z3:~3,11% 
15.
 
16.
>%out% echo %z1% 
17.
>>%out% echo Q10%pz3%%pz2% 
18.
>>%out% echo %z3% 
19.
>>%out% more +3 %in%
In und out sind die zu lesende und die entstehende / veränderte Datei.

Gruß
...
Bitte warten ..
Mitglied: DerOri
20.06.2013 um 13:57 Uhr
Hallo Endoro, und Hallo Miniversum. Danke für eure Antworten:


Miniversum, deine Batch Funktioniert fast und wäre für mich dann schon ausreichend.

Das einzige was Sie noch falsch macht, ist das Sie

auf das Q10 aus Zeile:3 in Zeile:2 mit übernimmt, dort soll aber Q00 bleiben.
Bitte warten ..
Mitglied: miniversum
20.06.2013 um 14:00 Uhr
Das kannst du ändern in dem du Zeile 17 von
>>%out% echo Q10%pz3%%pz2%
zu
>>%out% echo Q00%pz3%%pz2%
änderst...
Bitte warten ..
Mitglied: DerOri
20.06.2013 um 14:04 Uhr
^^ Danke, hätte ich auch draufkommen können ;)

So weit passt dann alles.


Vielen Dank für die sehr schnelle Hilfe
Bitte warten ..
Mitglied: pieh-ejdsch
20.06.2013 um 14:06 Uhr
moin DerOri,

ungetestet aus dem Handgelenk geschüttelt:

01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
 
04.
set "Input=D:\diepaar*.txt" 
05.
set "OutputEXT=_neu.txt" 
06.
 
07.
for %%i in ("%input%") do call :read "%%~i" 
08.
 
09.
exit /b 0 
10.
:read 
11.
findstr /n . %1 > "%temp%\NR.tmp" 
12.
>"%~dpn1%outputext%" ( 
13.
for /f "usebackqdelims=" %%a in ("%temp%\NR.tmp") do ( 
14.
 set "Line=%%a" 
15.
 for /f "tokens1,*delims=:" %%N in ("%%a") do ( 
16.
  setlocal enabledelayedexpansion 
17.
  if %%N equ 2 (endlocal & set "Line2=%%M" 
18.
  ) else if %%N equ 3 (echo !Line2:~0,3!!Line:~5,13!!Line2:~14! 
19.
   echo !Line:*:=! 
20.
  ) else echo !Line:*:=! 
21.
) ) 
22.
)
Gruß Phil
Bitte warten ..
Mitglied: Endoro
20.06.2013 um 14:10 Uhr
Hab ich wieder den kleinsten
01.
sed -r "2 {h;d}; 3 {H;s/[^:]*:.{3}(.{11}).*/\1/;G;s/(.*)\n([^:]*:.{3}).{11}/\2\1/m}" file
traurige Grüsse
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Batch eine XLS-Datei in eine TXT-Datei umwandeln (5)

Frage von skiing69 zum Thema Batch & Shell ...

Batch & Shell
gelöst Größe einer Datei per BATCH in eine TXT schreiben (5)

Frage von marvinpl zum Thema Batch & Shell ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
PC erhalten nicht immer eine gültige IP (29)

Frage von Lieberwolf zum Thema Netzwerkprotokolle ...

Windows Systemdateien
Windows 7 und 10 herunterfahren Knopf mit Script belegen (21)

Frage von c-o-o-p-e-r92 zum Thema Windows Systemdateien ...

Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (16)

Frage von Zockervogel zum Thema Router & Routing ...