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

Frage Entwicklung Batch & Shell

GELÖST

unterschiedliche string in csv löschen

Mitglied: 77575

77575 (Level 1)

12.07.2009, aktualisiert 20:35 Uhr, 5904 Aufrufe, 19 Kommentare

hallo,

ich exportiere mit dem tool csvde die benutzer einer domäne in eine csv datei, diese daten werden f. ein anderes system zum importieren genutzt.
leider gibt das tool auch immer die OU container mit aus. diese muss ich nun löschen.

hier mal ein paar bsp. zeilen.
"CN=Mustermann Max,OU=Benutzer,DC=Firma,DC=DE",Max,Musterann,Berlin,Marketing,maxmustermann@firma.de
"CN=Sorglos Anita,OU=Benutzer,DC=Firma,DC=DE",Anita,Sorglos,Berlin,Finanzbuchlatung,anita.sorglos@firma.de
"CN=Meier Otto,OU=Benutzer,DC=Firma,DC=DE",Otto,Meier,München,Sales,Otto.Meier@firma.de
usw.

Ich muss jetzt alles löschen was zwischen den beiden Anführungszeichen steht, inklusive der Anführungszeichen und des darauffolgendem komma, also zum beispiel in der erstenzeile den Text
"CN=Mustermann Max,OU=Benutzer,DC=Firma,DC=DE",

Bei vb script gibt es ja die funktion replace, nur nützt mir die in meinem fall nichts, weil der string der ersetzt werden soll in jeder zeile anders ist.
wenn man das ganze auch mit batch realisieren könnte wäre es super.
hab mir mal delims angeschaut aber komme nicht damit klar.

gruss 01-01-01
Mitglied: Berrnd
12.07.2009 um 20:41 Uhr
Hi,

für solche Dinge kann ich Dir den EmEditor empfehlen. Der bietet ziemlich umfangreiche "Suche & Ersetze" Möglichkeiten.
(siehe: http://emeditor.com)

Gruß
Bernd
Bitte warten ..
Mitglied: 77575
12.07.2009 um 20:45 Uhr
Zitat von Berrnd:
Hi,

für solche Dinge kann ich Dir den EmEditor empfehlen. Der bietet
ziemlich umfangreiche "Suche & Ersetze"
Möglichkeiten.
(siehe: http://emeditor.com)

Gruß
Bernd

hallo,

das ganze muss über ein script laufen.

gruss 01-01-01
Bitte warten ..
Mitglied: 76109
12.07.2009 um 20:57 Uhr
Hallo 01-01-01!

Das sollte funktionieren:
01.
Const iPath = "F:\$Scripts\Test\Import.CSV" 
02.
Const ePath = "F:\$Scripts\Test\Export.CSV" 
03.
 
04.
Dim Fso, iFile, eFile, Text 
05.
 
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
Set iFile = Fso.OpenTextFile(iPath) 
08.
Set eFile = Fso.CreateTextFile(ePath) 
09.
     
10.
Do Until iFile.AtEndOfStream 
11.
    Text = Split(iFile.ReadLine, """") 
12.
    If UBound(Text) = 2 Then eFile.WriteLine Mid(Text(2), 2) 
13.
Loop 
14.
 
15.
iFile.Close:  eFile.Close 
16.
 
17.
MsgBox "Der Exportvorgang ist beendet!", vbInformation, "Meldung"
Gruß Dieter
Bitte warten ..
Mitglied: Biber
12.07.2009 um 21:21 Uhr
Moin 01-01-01,


unabhängig davon, dass wir hier sicherlich eine Batch/VBS/whatever-Lösung finden werden,
ich exportiere mit dem tool csvde die benutzer einer domäne ...
  • und wer zwingt Dich dann, das OU-Feld mit rauszulutschen?
diese daten werden f. ein anderes system zum importieren genutzt.
  • und wer zwingt dieses Tool, alle Felder in der CSV-Datei zu nutzen?

In meiner Jugend war dieses CSV-Format so beliebt, weil wir damals bei jedem Import sagen konnten:
"Nimm nur Felder 1, 3, 7 und 10, aber bitte in der Reihenfolge Feld1, Feld7, Feld10 und dann Feld3"

Ist so etwas mit dieser neumodischen Manymany-Kernels-Architektur heute nicht mehr möglich?

Grüße
Biber
Bitte warten ..
Mitglied: 76109
12.07.2009 um 21:42 Uhr
Hallo Biber!

Zitat von Biber:
In meiner Jugend war dieses CSV-Format so beliebt, weil wir damals
bei jedem Import sagen konnten:
"Nimm nur Felder 1, 3, 7 und 10, aber bitte in der
Reihenfolge Feld1, Feld7, Feld10 und dann Feld3"


In meiner Jugend gab es noch kein Excel, aber heute geht das noch mit der Textimportfunktion

Gruß Dieter
Bitte warten ..
Mitglied: Biber
12.07.2009 um 23:03 Uhr
Moin didi1954,
<OT>
Zitat von 76109:
In meiner Jugend gab es noch kein Excel...
Ich nehme ja die Redmonder in Schutz, wo und wann auch immer ich kann.
Aber die Erfindung des CSV-Formats geht nicht auf deren PraktikantInnenkonto.
Woran sie allerdings (vor allem durch Excel) verantwortlich sind ist, dass durch den jahrelangen Excel-Quasi-Standard die comma separated values-Dateien im Allgemeinen semicolon separated gemeint sind, wenn jemand eine CSV-Datei für Import/Export plant.

Aber wenn 01-01-01 doch mit dem Zielsystem "Excel" gemeint hätte, dann würde er doch ohnehin "Jose" für AD-Abfragen verwenden, oder?
</OT>

Grüße
Biber
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:24 Uhr
Zitat von Biber:
...
  • und wer zwingt Dich dann, das OU-Feld mit rauszulutschen?
das tool selbst. ich habe noch keinen schalter gefunden der die OU struktur weglässt, sollte es einen geben, wäre ich dankbar für den hinweis

Zitat von Biber:
> diese daten werden f. ein anderes system zum importieren
genutzt.
  • und wer zwingt dieses Tool, alle Felder in der CSV-Datei zu
nutzen?
darauf habe ich keinen einfluss.
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:40 Uhr
hi didi1954,

das funktioniert auch ganz gut. nur die export datei hat ein binäres format.
wenn ich es mit ultraedit öffne, zeigt es mir als binär datei an. wenn ich es mit notepad öffne, zeigt er es mir mir je einem space zwischen jedem zeichen an.
bekommt man das erste komma auch noch weg?
das output sieht so aus:
, M a x , M u s t e r a n n , B e r l i n , M a r k e t i n g , m a x m u s t e r m a n n @ f i r m a . d e

Gruss 01-01-01
Bitte warten ..
Mitglied: 77575
13.07.2009 um 13:49 Uhr
Zitat von Biber:
Aber wenn 01-01-01 doch mit dem Zielsystem "Excel" gemeint
hätte, dann würde er doch ohnehin "Jose" für
AD-Abfragen verwenden, oder?

>/OT>
Grüße
Biber


hi , mit jose bekomme ich eine schöne html seite raus, wie bekomme ich damit ein komma separiertes ergebniss?
das system f. den import ist mir nichzt bekannt.

gruss 01-01-01
Bitte warten ..
Mitglied: Biber
13.07.2009 um 14:40 Uhr
Moin 01-01-01,

damit Du erstmal eine funktionierende Lösung bekommst.

Die beiden Methoden [FileSystemObject.]OpenTextfile() und .CreateTextFile() kennen jeweils noch einen Parameter für Textdateien im Unicodeformat.

Wenn Du die INPUT-Datei als als Unicode lesen willst
Set iFile =Fso.OpenTextFile(iPath, , , -1) ' 4.Parameter Tristatetrue auf (-1) setzen -->Unicode
bzw die Ergebnisdatei als ASCII (bzw. nicht Unicode) wegschreiben willst
Set eFile = Fso.CreateTextFile(ePath, , FALSE) ' 3.Parameter TRUE = unicode; FALSE ist DEFAULT

Deine anderen Antworten bzw Rückfragen habe ich gelesen, aber hab momentan keine Zeit dafür.
.
Grüße
Biber
Bitte warten ..
Mitglied: wuehlaz
13.07.2009 um 15:03 Uhr
hmpf also wenn ich in meine ad console gehe und auf benutzer einen rechtsklick mache erscheint dort "liste exportieren".

er exportiert mir dann alle angezeigten spalten (kann man sich in der ansicht auswählen) in eine csv datei ohne ou.

und die geht wunderbar im excel öffnen und dort steht dann zb:

Mustermann,Gruppe,Abteilung,

Mehr Spalten lasse ich bei mir nicht anzeigen.

kannst auch mal das programm Hyena testen. damit arbeiten wir zb.

lg
Bitte warten ..
Mitglied: 77575
13.07.2009 um 16:04 Uhr
hi didi1954,

das funktioniert auch ganz gut. nur die export datei hat ein binäres format.
wenn ich es mit ultraedit öffne, zeigt es mir als binär datei an. wenn ich es mit notepad öffne, zeigt er es mir mir je einem space zwischen jedem zeichen an.
bekommt man das erste komma auch noch weg?
das output sieht so aus:
, M a x , M u s t e r a n n , B e r l i n , M a r k e t i n g , m a x m u s t e r m a n n @ f i r m a . d e

Gruss 01-01-01
Bitte warten ..
Mitglied: 77575
13.07.2009 um 16:05 Uhr
Zitat von wuehlaz:
hmpf also wenn ich in meine ad console gehe und auf benutzer einen
rechtsklick mache erscheint dort "liste exportieren".

er exportiert mir dann alle angezeigten spalten (kann man sich in der
ansicht auswählen) in eine csv datei ohne ou.

und die geht wunderbar im excel öffnen und dort steht dann zb:

Mustermann,Gruppe,Abteilung,

Mehr Spalten lasse ich bei mir nicht anzeigen.

kannst auch mal das programm Hyena testen. damit arbeiten wir zb.

lg



ja alles schön und gut, aber ich muss es automatisiert machen, den es handelt sich nicht nur um eine OU.
Bitte warten ..
Mitglied: 77575
13.07.2009 um 18:45 Uhr
hallo,

dank didi und biber hab ich das ganze jetzt passend.
hier der code.
01.
Const iPath = "D:\tmp\test\import.csv" 
02.
Const ePath = "D:\tmp\test\Export.csv" 
03.
 
04.
Dim Fso, iFile, eFile, Text 
05.
 
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
Set iFile = Fso.OpenTextFile(iPath,,,-1) 
08.
Set eFile = Fso.CreateTextFile(ePath,,FALSE) 
09.
     
10.
Do Until iFile.AtEndOfStream 
11.
    Text = Split(iFile.ReadLine, """") 
12.
    If UBound(Text) = 2 Then eFile.WriteLine Mid(Text(2), 2) 
13.
Loop 
14.
 
15.
iFile.Close:  eFile.Close
Vielen Dank nochmal

gruss 01-01-01
Bitte warten ..
Mitglied: Biber
13.07.2009 um 19:11 Uhr
Moin 01-01-01,

okay, wenn Du jetzt zumindest eine mögliche Lösungsvariante sicher hast,
dann kann ich etwas entspannter mein "ja, aber.." formulieren.

Ich habe gerade nach einer relativ uninspirierten Suchmaschinenbefragung ("cvsde syntax") und dreimal Klicken
beispielsweise die (Schritt-für-Schritt-Her)Anleitung CSVDE Export user Accounts gefunden.

Dort wird an einer Stelle, die der Leser/die Leserin nach ca 17sec stressfrei erreicht als ein Beispiel für einen Nur-5-für-mich-wichtige-Felder-Export hergeleitet:

Command: CSVDE -f export4.csv -r objectClass=user -l "DN, objectclass, givenName, sn, name"

Ich denke also (nach wie vor), dass mit einem kurzen 5-Minuten-Mittagspausen-Rumgugeln die ganze Klamotte auch
  • ohne Zwischen-CSV-Dateien und
  • ohne "Do until ( Kunde.AtEndOfStream or nerven =BLANK)"
lösbar ist.

Grüße
Biber
Bitte warten ..
Mitglied: 77575
13.07.2009 um 19:24 Uhr
hi biber,
die seite kenne ich auch.
ich habe es trotzdem nicht geschafft mein csv output ohne die CN/OU container zu exportieren.
das ist mein csvde kommando:
csvde -m -n -u -f "%tmpPath%\munich.csv" -d "OU=Benutzer,OU=Berlin,DC=Firma,DC=de" -r "(|(&(objectClass=user)))" -l givenName,sn,mail,department,physicalDeliveryOfficeName

csvde gibt trotzdem die CN/OU/DC mit aus. ausserdem wird komischweise immer erst der nachname der standort und dann der nachname ausgegeben, egal in welcher reihenfolge ich die ldap felder angebe.

deshalb habe ich ja nach einer lösung gesucht.

gruss 01-01-01
Bitte warten ..
Mitglied: 76109
14.07.2009 um 12:00 Uhr
Hallo zusammen!

Sorry, hatte gestern leider keine Zeit und einen miesen Tag dazu.

OP-Termin Uni-Klinik-Heidelberg und heftiger Autoschaden. Auf dem Klinikgeländere ca 500m vorm Ziel, bin ich wegen einer Diesel-Spur eines Verkehrsbusses in einer Kurve geradeaus gefahren. Das Problem dabei, es ging nur nach Rechts oder Links Hoffe bloß, dass die Verkehrsbetriebe den Schaden übernehmen, sonst wird's sehr sehr Teuer

@Biber

Danke für's Einspringen.

Gruß Dieter
Bitte warten ..
Mitglied: Biber
14.07.2009 um 12:30 Uhr
Moin didi1954,

<OT>
Verkehrsbetriebe sind da ja sehr kulant - die werden einen Sachverständigen auf das ansetzen, was gestern noch Dein Auto war, und falls ein eingerasteter Blinkhebel Deinen Rechts-oder-Links-Abbiegewillen hinreichend dokumentiert, dann hast du Chancen.
Du hast doch geblinkt, oder...?

Wie dem auch sei, auch wenn es nicht klappen sollte
Deine Geradlinigket erkennen wir auf jeden Fall an...

</OT>

Grüße
Biber
Bitte warten ..
Mitglied: 76109
14.07.2009 um 13:33 Uhr
Hallo Biber!

Danke für Deine aufmunternten Worte

Na, selbstverständlich habe ich geblinkt Aber ich musste ja die vielbefahrene Zufahrtsstraße freimachen. Und außer meinem Auto, ist ja nix beschädigt, da lediglich ein hoher Bordstein im Weg war, der mir das rechte Vorderrad zerfetzt, Rahmenteile geknickt, das Lenkgestänge und sonstige Teile ein paar Zentimenter nach innen verschoben hat. Nach einem Radwechsel bin auch noch ins Parkhaus und Heute wieder ganz vorsichtig nach Hause gefahren.

Die Polizei war da und die Feuerwehr hatte auch schon Bescheid gewusst, aber noch nichts unternommen. Keine Schilder aufgestellt oder sonstiges. Erst nachdem die Polizei nachgehakt hat, wurde die Straße über mehrere Hundert Meter gereinigt. Und die Polizei war es auch, die den Verursacher ermittelt und gesagt hat, dass mir der Schaden, WENN ICH GLÜCK HABE, von den Verkehrsbetrieben ersetzt wird. Morgen lass ich mir mal einen Kostenvoranschlag machen und bin auf das Ergebniss sehr gespannt????

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
String aus Spalte in csv auslesen und ersetzen
Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Batch & Shell
Teil eines Strings löschen
gelöst Frage von Dnis822Batch & Shell18 Kommentare

Hallo zusammen, ich komme gerade bei folgendem Punkt nicht weiter: Ich habe eine Datei die völlig unformatiert ist, das ...

Batch & Shell
CSV durchsuchen und löschen
Frage von leonmmBatch & Shell3 Kommentare

Hallo Admins Ich habe eine CSV Datei bekommen (habe schei in der Firma gemacht) In dieser Datei sind umlaute ...

Entwicklung
Zeile in CSV löschen
gelöst Frage von Alex1809Entwicklung3 Kommentare

Moin zusammen, in Zusammenhang mit Power Shell, stehe ich wieder vor einer Wand Ich brauche ein Code, welcher eine ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...