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.

Frage Entwicklung Batch & Shell

Mitglied: hansbaer

hansbaer (Level 1) - Jetzt verbinden

12.06.2013 um 15:18 Uhr, 1463 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
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 8 MinutenWindows 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 23 MinutenWebbrowser

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 12 StundenInternet4 Kommentare

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

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 18 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...