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 Zeile aus CSV Datei in eine TXT(ini) datei kopieren.

Mitglied: hansbaer

hansbaer (Level 1) - Jetzt verbinden

12.06.2013 um 15:18 Uhr, 1480 Aufrufe, 14 Kommentare

Hallo,
eine CSV-Datei soll am besten zyklisch untersucht werden. Der Inhalt aus einer bestimmten Zeile soll dann in eine bestimmte Position einer TXT-Datei geschrieben werden. Dies soll aber auch nur geschehen wenn der Inhalt aus dieser Zeile nicht mit dem Inhalt aus der Zieldatei übereinstimmt.

Kann mir jemand helfen?

Grüße,

Thomas
Mitglied: bastla
12.06.2013 um 16:49 Uhr
Hallo hansbaer und willkommen im Forum!

Wenn du einen bestimmten Batch oder ein bestimmtes VB-Script dafür verwendest, wird das bestimmt funktionieren ...

BTW:
Dies soll aber auch nur geschehen wenn der Inhalt aus dieser Zeile nicht mit dem Inhalt aus der Zieldatei übereinstimmt.
Was würde denn passieren, wenn bei übereinstimmendem Inhalt trotzdem geschrieben würde?

Grüße
bastla
Bitte warten ..
Mitglied: hansbaer
12.06.2013 um 16:59 Uhr
Hallo bastla,

was passieren würde? ich denke nicht viel...
da das ganze aber auch einer schwachbrüstigen Maschine läuft muss nicht unbedingt Kapazität verwendet werden.
Falls das aber keine Rolle spielt kann es dann natürlich trotzdem geschrieben werden.

Grüße,

hansbaer
Bitte warten ..
Mitglied: bastla
12.06.2013 um 17:08 Uhr
Hallo hasbaer!
was passieren würde? ich denke nicht viel...
Hatte ich vermutet; das unnötige Schreiben lässt sich aber bestimmt auch verhindern ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
12.06.2013 um 17:08 Uhr
Hallo hansbaer,

- bestimmte Zeile in csv finden
- Zielstelle suchen und finden
- überprüfen, was da schon steht

Und das alles ohne konkrete Info. Echt klasse Fragestellung.
@hansbaer ich empfehle EXCEL.

Grüsse!
Bitte warten ..
Mitglied: hansbaer
12.06.2013 um 18:25 Uhr
Hallo,

entschuldigt bitte wenn ich nicht genügend Informationen geliefert habe..
hier der Inhalt meiner CSV Datei.


MandantNr;MandantID
2;DSW

Und zwar soll der Inhalt aus Spalte 2 Zeile 2 also hier DSW

in eine Txt Datei mit dem Inhalt:

1234567
alterText
987654


an die Stelle "alterText" kopiert und die TXT Datei dann gespeichert werden.

Excel kommt nicht in Frage, da das ganze auf mehreren Systemen läuft und ich ja nicht für jeden Rechner eine Excel-Version kaufen möchte..
Bitte warten ..
Mitglied: bastla
12.06.2013 um 19:52 Uhr
Hallo hansbaer!

Na dann als VB-Script (Dateityp ".vbs"):
01.
Ein = "D:\Deine.csv" 
02.
Aus = "D:\Deine.txt" 
03.
Zeile = 2 
04.
Spalte = 2 
05.
Delim = ";" 
06.
Suche = "alterText" 
07.
 
08.
Set fso = CreateObject("Scripting.FileSystemObject") 
09.
DatEin = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline) 
10.
Wert = Split(DatEin(Zeile - 1), Delim)(Spalte - 1) 
11.
 
12.
DatAus = fso.OpenTextFile(Aus).ReadAll 
13.
fso.CreateTextFile(Aus).Write Replace(DatAus, Suche, Wert)
Der Suchbegriff muss unter Berücksichtigung von Groß-/Kleinschreibung angegeben werden und wird vollständig durch den gefundenen Wert ersetzt. Die Textdatei wird dabei (ohne Sicherungskopie) durch die neue Version überschrieben.

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
12.06.2013, aktualisiert um 20:12 Uhr
... und als Batch dann so:
01.
@echo off &setlocal 
02.
set "fcsv=file1" 
03.
set "ftxt=file2" 
04.
set "fnew=file3" 
05.
 
06.
for /f "skip=1tokens=2delims=;" %%i in (%fcsv%) do if not defined txtneu set "txtneu=%%i" 
07.
(for /f "delims=" %%i in (%ftxt%) do ( 
08.
	if "%%i"=="alterText" (echo(%txtneu%) else echo(%%i 
09.
))>%fnew% 
10.
type %fnew%
Gruss!
Bitte warten ..
Mitglied: hansbaer
12.06.2013 um 20:50 Uhr
wahnsinn!
Ihr seit ja echt Granaten! Danke!
Ich möchte mit dieser Aktion Pfade in einer Textdatei automatisch umbenennen.

was mir aber noch nicht ganz an dieser Lösung passt ist, dass die Variable "AlterText" verschiedene Werte haben kann.

als Beispiel

D:\InfoMedia\Layout\TFTupdateDSW
oder
D:\InfoMedia\Layout\TFTUpdateXXXcc
oder
D:\InfoMedia\Layout\TFTUpdateZZZvvv

Der Inhalt aus der o.g. Zelle (zeichenanzahl variabel) der CSV soll immer an die Stelle nach dem D:\InfoMedia\Layout\TFTUpdatexxx geschrieben werden (Zeichenanzahl xxx ebenso variabel)

Wenn bei euren o.g. Lösungen bei ersten mal DSW aus der CSV in "alterText" geschrieben wird, findet die batch bei der nächsten Änderung der CSV ja "alterText" nicht mehr.
Bitte warten ..
Mitglied: bastla
12.06.2013, aktualisiert um 21:42 Uhr
Hallo hansbaer!

Dann geht es wohl eher doch um einen nur teilweise bestimmten Text ...

Unter der Annahme, dass also die relevante Zeile nur mit dem Suchtext beginnen muss, sollte das so gehen:
01.
Ein = "D:\Deine.csv" 
02.
Aus = "D:\Deine.txt" 
03.
Zeile = 2 
04.
Spalte = 2 
05.
Delim = ";" 
06.
Suche = "D:\InfoMedia\Layout\TFTupdate" 
07.
 
08.
Set fso = CreateObject("Scripting.FileSystemObject") 
09.
DatEin = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline) 
10.
Wert = Split(DatEin(Zeile - 1), Delim)(Spalte - 1) 
11.
 
12.
DatAus = Split(fso.OpenTextFile(Aus).ReadAll, vbNewline) 
13.
 
14.
SLen = Len(Suche) 
15.
For i = 0 To UBound(DatAus) 
16.
    If Left(DatAus(i), SLen) = Suche Then DatAus(i) = Suche & Wert 
17.
Next 
18.
fso.CreateTextFile(Aus).Write Join(DatAus, vbNewline)
Grüße
bastla
Bitte warten ..
Mitglied: Endoro
12.06.2013 um 23:07 Uhr
01.
@echo off &setlocal 
02.
set "fcsv=file1" 
03.
set "ftxt=file2" 
04.
set "fnew=file3" 
05.
set "core=D:\InfoMedia\Layout\TFTupdate" 
06.
 
07.
for /f "skip=1tokens=2delims=;" %%i in (%fcsv%) do if not defined txtneu set "txtneu=%%i" 
08.
(for /f "delims=" %%i in (%ftxt%) do ( 
09.
	echo("%%i"|findstr /c:"%core%" >nul && (echo(%core%%txtneu%) || echo(%%i 
10.
))>%fnew% 
11.
type %fnew%
Gruss!
Bitte warten ..
Mitglied: hansbaer
13.06.2013 um 16:52 Uhr
Das wird ja immer besser!
Nur habe ich in meinem letzten beitrag leichtsinnigerweise die Dateiendung weggelassen- und ich möchte ja mit diesem script einen Dateinamen umbenennen.


als Beispiel

D:\InfoMedia\Layout\TFTupdateDSW.exe
oder
D:\InfoMedia\Layout\TFTUpdateXXXcc.exe
oder
D:\InfoMedia\Layout\TFTUpdateZZZvvv.exe

Der Inhalt aus der o.g. Zelle (zeichenanzahl variabel) der CSV soll immer an die Stelle nach dem D:\InfoMedia\Layout\TFTUpdatexxx geschrieben werden (Zeichenanzahl xxx ebenso variabel)

Wenn bei euren o.g. Lösungen bei ersten mal DSW aus der CSV in "alterText" geschrieben wird, findet die batch bei der nächsten Änderung der CSV ja "alterText" nicht mehr.

Danke für die Hilfe! Ihr seid echt toll!
Bitte warten ..
Mitglied: Endoro
13.06.2013 um 18:42 Uhr
Zitat von hansbaer:
Wenn bei euren o.g. Lösungen bei ersten mal DSW aus der CSV in "alterText" geschrieben wird, findet die batch bei
der nächsten Änderung der CSV ja "alterText" nicht mehr.

Bei meiner Lösung wird die Variable core wieder gefunden, weil sie unverändert bleibt.

Gruss!
Bitte warten ..
Mitglied: bastla
13.06.2013 um 19:16 Uhr
Hallo hansbaer!
Nur habe ich in meinem letzten beitrag leichtsinnigerweise die Dateiendung weggelassen
Gibt es vielleicht sonst noch etwas, das wir wissen sollten (und nicht ohnehin Deinem Eröffnungsbeitrag entnehmen können )?
Wenn bei euren o.g. Lösungen bei ersten mal DSW aus der CSV in "alterText" geschrieben wird, findet die batch bei der nächsten Änderung der CSV ja "alterText" nicht mehr.
Ist das eine Annahme oder Ergebnis Deiner Tests?

Gesucht wird durch beide Ansätze nach einer Zeile, die mit "D:\InfoMedia\Layout\TFTupdate" beginnt - das tut sie nach der Ergänzung durch "DSW" oder whatever ja immer noch ...

Damit der Dateityp auch geschrieben wird, wäre mein Script folgendermaßen abzuändern / zu ergänzen:
01.
Ein = "D:\Deine.csv" 
02.
Aus = "D:\Deine.txt" 
03.
Zeile = 2 
04.
Spalte = 2 
05.
Delim = ";" 
06.
Suche = "D:\InfoMedia\Layout\TFTupdate" 
07.
Typ = ".exe" 
08.
 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
DatEin = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline) 
11.
Wert = Split(DatEin(Zeile - 1), Delim)(Spalte - 1) 
12.
 
13.
DatAus = Split(fso.OpenTextFile(Aus).ReadAll, vbNewline) 
14.
 
15.
SLen = Len(Suche) 
16.
For i = 0 To UBound(DatAus) 
17.
    If Left(DatAus(i), SLen) = Suche Then DatAus(i) = Suche & Wert & Typ 
18.
Next 
19.
fso.CreateTextFile(Aus).Write Join(DatAus, vbNewline)
Grüße
bastla
Bitte warten ..
Mitglied: hansbaer
13.06.2013 um 21:34 Uhr
grandios!
funktioniert genau so wie ich es brauche!
Danke!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch - Bestimmter Inhalt einer Zeile aus einer txt oder ini als Variable

gelöst Frage von element22Batch & Shell2 Kommentare

Hallo zusammen, leider finde ich den Fehler nicht. Na gut, vielleicht sitzt er vorm Monitor, aber das ist etwas ...

Batch & Shell

Kopieren von Dateien aus .txt Liste

Frage von mippselBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem: Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in ...

Batch & Shell

Zeile von einer Bat-Datei in eine andere kopieren

gelöst Frage von Nick.BBatch & Shell6 Kommentare

Ich wollte eine Zeile von einer Bat-Datei in eine andere schreiben, dies habe ich auch mit echo geschafft aber ...

Microsoft

PowerShell: CSV in CSV kopieren

gelöst Frage von PludanMicrosoft3 Kommentare

Hallo Ich bin an einem PS Skript dran der den Inhalt von CSV 1 in CSV 2 kopiert. Wie ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 14 StundenHumor (lol)3 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware16 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...