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

2 TXT-Dateien spaltenweise zusammenfügen

Frage Entwicklung Batch & Shell

Mitglied: smileyman

smileyman (Level 1) - Jetzt verbinden

13.11.2009, aktualisiert 14.11.2009, 7250 Aufrufe, 4 Kommentare

Hallo Batch-Profiss,

ich versuche momentan verzweifelt eine Batch-Datei zu erstellen und bräuchte da mal eure Unterstützung:

Ich habe zwei TXT-Dateien (PNR.txt, UNS.txt; beide haben ca. 1000 Zeilen) die ich gerne zu einem File kombiniren würde:

PNR.txt
IndexInfo1Info2Info3Info4
....
...


UNS.txt
IndexInfo5Info6Info7Info8
....
....


Jetzt würde ich gerne eine neue TXT-Datei erstellen lassen, die so aussieht:
Index;Info4;Info2,Info5;Info8
....


Spaltenköpfe haben beide Files keine. -
Ich würde also gerne die Daten aus dem File 1 dem File 2 über die Indexstelle zuordnen lassen.
Den ersten Teil (Index;Index4;Index2) habe ich noch Problemlos über eine FOR-Schleife hinbekommen. - Da die Werte nicht abgetrennt sind, habe ich mir mit der immer identischen Zeichenzahl beholfen:

for /f "usebackq delims=" %%i in ("%Alt%") do (
set "Z=%%i"
>>"%Neu%" echo !Z:~25,8!;!Z:~0,8!)

Allerdings bleibbe ich nun bei der Zuordnung der Daten aus dem File 2 (UNS.txt) hängen. - Wie schaffe ich es nun, dass auch Info5;Info8 aus File 2 richtig angehängt wird?
Vermutlich läuft das auf die Integration von einer weiteren For-Schleife und findstr raus? - Allerdings bin ich da jetzt bei der Verschachtelung hängengeblieben.

Für einen Tipp wäre ich sehr dankbar.

smileyman
Mitglied: bastla
13.11.2009 um 20:44 Uhr
Hallo smileyman und willkommen im Forum!

Dein Ansatz (wäre - neben der Verwendung von VBS - auch meiner gewesen ) sollte sich etwa so umsetzen lassen (die Positionen in !Z2! sind frei erfunden ):
01.
for /f "usebackq delims=" %%i in ("%Alt%") do ( 
02.
    set "Z=%%i" 
03.
    for /f "delims=" %%a in ('findstr /b /i /c:"!Z:~0,8!" "%Alt2%"') do set "Z2=%%a" 
04.
    >>"%Neu%" echo !Z:~25,8!;!Z:~0,8!;!Z2:~8,10!;!Z2:~30,6! 
05.
)
Ob die "findstr"-Schalter "/i" und "/c" tatsächlich benötigt werden, hängt von Deinen Daten ab (aber, wenn auch vermutlich nicht erforderlich, schaden sollten sie zumindest nicht) ...

Grüße
bastla
Bitte warten ..
Mitglied: smileyman
13.11.2009 um 21:33 Uhr
Hallo Bastla,

vielen Dank für die Begrüßung und die nette Aufnahme hier im Forum.

Ja, dein Tipp funktioniert astrein. - Das war genau das was ich gesucht habe - Danke!
Jetzt habe ich nur noch ein Problem: Wenn der Wert von File 1 nicht in File 2 vorhanden ist, wird immer die letzte Zeile verwendet. - Evtl. kann ich das auch noch unterdrücken?

Ja, an VBS, Powershell etc. hatte ich auch schon gedacht. - Allerdings in ich da gar nicht fit

Na ja gut, diese Batch wird nur zwei mal am Tag laufen, da kommt es jetzt nicht unbedingt auf die Performance an
Wenn wir allerdings gerade dabei sind: Ich habe eine andere Batch die auf die hier generierten Daten aufsetzen. (diese bekommt den Index-Parameter übergeben und sucht ebenfalls wie findstr und for-Schleife aus diesem TXT-File den Info1-Wert). Diese Batch würde so ca. 3.000 mal pro Tag laufen, siehst du da Performanceprobleme oder die Gefahr einer Instabilität?

Grüße und nochmals Danke
smileyman
Bitte warten ..
Mitglied: bastla
13.11.2009 um 23:05 Uhr
Hallo smileyman!
Jetzt habe ich nur noch ein Problem: Wenn der Wert von File 1 nicht in File 2 vorhanden ist, wird immer die letzte Zeile verwendet. - Evtl. kann ich das auch noch unterdrücken?
Füge vor Zeile 3 ein:
set "Z2="
Bei Bedarf kannst Du auch, je nachdem, ob !Z2! einen Inhalt hat, unterschiedliche Ausgaben vornehmen
(if defined Z2 (echo ...) else (echo ...))>>"%Neu%"
Diese Batch würde so ca. 3.000 mal pro Tag laufen, siehst du da Performanceprobleme oder die Gefahr einer Instabilität?
Ohne mehr über den Batch zu wissen, kann ich ohnehin nichts dazu sagen - allerdings solltest Du das ja (ua auf dem Rechner, auf welchem der Batch tatsächlich ausgeführt werden soll) selbst testen können ...

Grüße
bastla
Bitte warten ..
Mitglied: smileyman
14.11.2009 um 16:16 Uhr
Hallo Bastla,

Topp! - Das funktioniert.
Hätte ich ja auch selbst draufkommen können - War allerdings wohl schon zu müde.

Ja, du hast vollkommen recht, dass ich das auch mal testen könnte. - Leider lässt sich dieses Szenario auch Ansatzweise nicht nachstellen, da zu viele Vorleistungsprogramme dran hängen, die so noch nicht zur Verfügung stehen.
Allerdings gehe ich davon aus, dass eine 5 Zeilige Batch da das geringste Problem darstellen dürfte.

Auf jeden Fall danke für deine spitzenmäßige Unterstützung

smileyman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
2 Csv -Dateien zum Teil zusammenfügen
gelöst Frage von PiotrneyBatch & Shell6 Kommentare

Hallo, Ich habe die Frage schon mal gestellt und aus versehen auf gelöst geklickt. Zum Anliegen : Ich erzeuge ...

Entwicklung
Zwei .txt Dateien via PowerShell zusammenfügen
gelöst Frage von Alex1809Entwicklung2 Kommentare

Ahoi, ich habe ein kleines Problem bei der Skript Erstellung, mit PowerShell. Und zwar habe ich zwei txt Dateien, ...

VB for Applications
Inhalt einer .txt (Zeilenweise) in Excel (Spaltenweise) importieren
gelöst Frage von ascendiaVB for Applications2 Kommentare

Guten Tag liebe administrator.de - Gemeinde, ich würde mich freuen, wenn Ihr mir bei folgendem Problem weiterhelfen könntet. Im ...

Batch & Shell
PDF Dateien mit PDFTKBuilderPortable zusammenfügen
gelöst Frage von makroll10Batch & Shell4 Kommentare

Hallo Allerseits, ich beabsichtige mit dem "PDFTKBuilderPortable" mehrere PDF-Dateien zusammen zu fassen. Eigentlich ist das ja auch ganz einfach: ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 15 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 20 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 20 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...