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

BATCH - Zeilen- und Spaltenweise einlesen und ausgeben

Frage Entwicklung Batch & Shell

Mitglied: mydom23

mydom23 (Level 1) - Jetzt verbinden

10.11.2009, aktualisiert 18.10.2012, 4370 Aufrufe, 3 Kommentare

Hi,

ich habe ein kleines Problem. Ich brauche ein Script dass mir zwei Dateien zusammenführt und den Inhalt der Dateien bearbeitet. Ziel ist es die zwei Dateien für einen Import vorzubereiten. Die zwei Dateien sehen wiefolgt aus:

Datei1:
01.01.2009;09:00;17,89;4;1;1
01.01.2009;09:12;21,13;4;1;1
01.01.2009;09:15;44,99;3;1;1

Datei2:
01.01.2009;09:15;44,99;3;2;1
01.01.2009;09:21;29,84;6;2;1

Aus diesen zwei Dateien soll eine Datei gemacht werden. Dabei muss jeweils der 5. Token einer Zeile angepasst werden. Als Ausgabe soll dann folgendes bei rauskommen:

01.01.2009;09:00;17,89;4;1;1
01.01.2009;09:12;21,13;4;1;1
01.01.2009;09:15;44,99;3;1;1
01.01.2009;09:15;44,99;3;1;1
01.01.2009;09:21;29,84;6;1;1

Folgendes habe ich bereits:
@echo off
COLOR 7
echo
echo Exportdateien zusammenfuerhen
echo
echo Welche Dateien wollen Sie zusammenfuehren?
:readfile1
set /p file1=Datei 1:
IF exist %file1% (
COLOR 7
echo OK
) ELSE (
COLOR C
echo !!!!! Datei %file1% nicht gefunden !!!!!
goto :readfile1
)
:readfile2
set /p file2=Datei 2:
IF exist %file2% (
COLOR 7
echo OK
) ELSE (
COLOR C
echo !!!!! Datei %file2% nicht gefunden !!!!!
goto :readfile2
)
echo Wie soll die erzeugte Datei heissen?
set /p outputname=Dateiname:
for /F "Tokens=5 delims=;" %%i in (%file1%) do set abteilung=%%i
* HIER MUSS DIE DATEI ZEILENWEISE AUSGELESEN WERDEN, DER 5. TOKEN GEÄNDERT WERDEN UND IN EINE DATEI GESCHRIEBEN WERDEN *
pause

Hier werden zunächst die beiden Dateien angegeben, der Name der Ausgabedatei festgelegt und die Referenznummer eingelesen auf welche der 5. Token geändert werden soll. Die Ausgabe in eine Datei ist auch kein Problem. Das bekomme ich mit "echo %var% >> %outputname%" hin. Jedoch weiß ich nicht wie ich es schaffe die Dateien zeilenweise durch zu gehen und jeweils die 5. Spalte zu ändern.

Ich hoffe jemand kann mir da weiter Helfen und nen kleinen Tipp geben. Ich bin im batchen leider nicht so fit.

Danke.
Mitglied: 60730
10.11.2009, aktualisiert 18.10.2012
Servus,

bitte benutze die Fomatierungshilfe und genauer Code Blöcke.

Dann:

COLOR 7
ist kein gültiger Befehl...

dann würde ich auch mal nach einem Beitrag meinerseits nachsehen, der sich suchen und ersetzen nennt.
Dort sind einige "Such & Ersetzen" Threads zu finden.

btw:
01.
copy %file1% + %file2% outputname 
02.
sort outputname /o outputname.txt
so würde ich das weiterführen.
Nur was genau die Zeile machen soll?
for /F "Tokens=5 delims=;" %%i in (%file1%) do set abteilung=%%i
Hab ich ehrlich nicht verstanden..


Gruß
Bitte warten ..
Mitglied: bastla
10.11.2009 um 12:14 Uhr
Hallo mydom23!

Um in Datei2 jeweils als 5. Token den Inhalt von %abteilung% einzutragen, etwa so:
01.
move %file2% %file2%.tmp 
02.
for /f "tokens=1-6 delims=;" %%a in (%file2%.tmp) do >>%file2% echo %%a;%%b;%%c;%%d;%abteilung%;%%f 
03.
del %file2%.tmp
Grüße
bastla
Bitte warten ..
Mitglied: mydom23
10.11.2009 um 12:23 Uhr
Hi,
danke bastla so funktionierts.
Habe nicht gewusst dass man dem %%a einfach ein %%b %%c etc. anhängen kann ohne diese zu definieren.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

TK-Netze & Geräte
gelöst Convert von TAPI auf CAPI gesucht (13)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...