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 Wörter in Anführungsstrichen in einer Zeile einer txt in einem anderen Format in neue txt schreiben

Mitglied: gijukud6

gijukud6 (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 19:29 Uhr, 4107 Aufrufe, 6 Kommentare

Hallo,

es gibt eine Menge Fragen, die dieses Thema behandeln, aber da ich bezüglich Batch-Dateien nicht viel Ahnung habe und mein Problem etwas spezieller ist, konnte ich mir aus den Themen nicht die Lösung zusammenbasteln... Hoffe ihr könnt mir helfen:

Ich habe eine txt Datei, die in jeder Zeile eine Menge stehen hat, unter anderem auch Host:"derhost" sowie Passwort:"daspw" und User:"deruser".
Nun bräuchte ich eine Batch, die jede Zeile dieser txt Datei ausliest und diese Information in eine neue txt Datei schreibt im Format:
ftp://deruser:daspw@derhost

Hier die ersten 3 Zeilen der Datei. Jede weitere Zeile ist gleich aufgebaut, aber die "Variablen" sind logischerweise unterschiedlich lang.

01.
<Site Name="apple" Host="apple.com" Port="21" User="stevey" RemoteDir="" LocalDir="" Pass="01807254095081091089001004" Logontype="1" FWBypass="0" DontSavePass="0" ServerType="0" PasvMode="0" TimeZoneOffset="0" TimeZoneOffsetMinutes="0" Comments="" UTF8="0" DefaultSite="0"/> 
02.
<Site Name="google" Host="google.com" Port="21" User="eric666" RemoteDir="" LocalDir="" Pass="0990850700690640857075084116118112" Logontype="1" FWBypass="0" DontSavePass="0" ServerType="0" PasvMode="0" TimeZoneOffset="0" TimeZoneOffsetMinutes="0" Comments="" UTF8="0" DefaultSite="0"/> 
03.
<Site Name="microsoft" Host="microsoft.com" Port="21" User="billG" RemoteDir="" LocalDir="" Pass="02209478064088124084068083" Logontype="1" FWBypass="0" DontSavePass="0" ServerType="0" PasvMode="0" TimeZoneOffset="0" TimeZoneOffsetMinutes="0" Comments="" UTF8="0" DefaultSite="0"/>
Vielen Dank für Hilfe
Gruß
Mitglied: bastla
08.04.2009 um 18:43 Uhr
Hallo gijukud6 und willkommen im Forum!

Gibt es in den Zeilen irgend eine Systematik (etwa: fixe Wortanzahl bzw Zeichenanzahl/Zeichenposition; oder: nur nach "Host", "Passwort" und "User" befindet sich ein ":")?

Es wäre auch hilfreich, wenn Du einige Beispielzeilen (mit anonymisierten Daten) in Code-Formatierung posten könntest ...

Grüße
bastla
Bitte warten ..
Mitglied: colinardo
08.04.2009 um 20:36 Uhr
Folgendes Visual Basic Script solte dir helfen:
Nach deinen Formatvorgaben sucht das Script nach den folgenden Textstellen :
User=
Pass=
Host=
und extrahiert alles was danach zwischen den Anführungszeichen folgt.

Du musst nur noch den Pfad für die Textdatei in Zeile 2 des Codes anpassen.
Nach dem Aufruf findest du eine Textdatei im Ordner des Scriptes, du kannst den Pfad aber auch in Zeile 3 des Codes anpassen!
01.
Set fso = CreateObject("scripting.filesystemobject") 
02.
Set source_file = fso.OpenTextFile("text.txt",1) 
03.
Set target_textfile = fso.OpenTextFile("processed_file.txt",2,true) 
04.
Do Until source_file.AtEndOfStream 
05.
	line = source_file.ReadLine 
06.
	pos_content_user = InStr(1,line,"User=",1)+6 
07.
	len_content_user = InStr(pos_content_user, line, Chr(34)) - pos_content_user 
08.
	pos_content_pass = InStr(1,line,"Pass=",1)+6 
09.
	len_content_pass = InStr(pos_content_pass, line, Chr(34)) - pos_content_pass 
10.
	pos_content_host = InStr(1,line,"Host=",1)+6 
11.
	len_content_host = InStr(pos_content_host, line, Chr(34)) - pos_content_host 
12.
	 
13.
	user = Mid(line,pos_content_user, len_content_user) 
14.
	pass = Mid(line,pos_content_pass, len_content_pass) 
15.
	host = Mid(line,pos_content_host, len_content_host) 
16.
	target_textfile.WriteLine "ftp://" & user & ":" & pass & "@" & host 
17.
Loop 
18.
MsgBox "Feddich..." 
19.
source_file.Close 
20.
target_textfile.Close
Wünsche weiterhin viel Erfolg !
Bitte warten ..
Mitglied: gijukud6
08.04.2009 um 20:53 Uhr
Danke vielmals Softmeister, das hat (trotz fehlermeldung) funktioniert.
Trotzdem würde ich gern interessehalber wissen, wie man das Problem mittels Batch gelöst hätte.
Bitte warten ..
Mitglied: bastla
08.04.2009 um 21:55 Uhr
Hallo gijukud6!

Ich hätte zwar auch eher VBS als Batch gewählt, aber es könnte - soferne es keine zusätzlichen Leerzeichen zwischendurch (etwa im Wert von "Site Name" oder "LocalDir") gäbe - so klappen:
01.
@echo off & setlocal 
02.
set "Ein=D:\text.txt" 
03.
set "Aus=D:\processed_file.txt" 
04.
 
05.
if exist "%Aus%" del "%Aus%" 
06.
for /f "usebackq tokens=3,5,8" %%i in ("%Ein%") do for /f "tokens=2,4,6 delims==" %%a in ("%%j=%%k=%%i") do >>"%Aus%" echo ftp://%%~a:%%~b@%%~c
Grüße
bastla
Bitte warten ..
Mitglied: gijukud6
08.04.2009 um 22:45 Uhr
Dankesehr, es funktioniert!
Eine Bitte hab ich noch: Könntest du mir bitte die letzte Zeile deiner Batch ein wenig erläutern?
Bitte warten ..
Mitglied: bastla
08.04.2009 um 22:57 Uhr
Hallo gijukud6!
for /f "usebackq tokens=3,5,8" %%i in ("%Ein%") do
Gehe alle Zeilen der in der Klammer angegebenen Datei (da diese unter Anführungszeichen - für den Fall, dass Name oder Pfad Leerzeichen enthielten - steht muss, zur Unterscheidung von einem Text, "usebackq" verwendet werden) durch und entnehme die (durch die Default-Trennzeichen Leerzeichen bzw TAB) Teile 3, 5 und 8 als Variable %%i und alphabtisch folgende - Ergebnis für die erste Zeile:
%%i: Host="apple.com" 
%%j: User="stevey" 
%%k: Pass="01807254095081091089001004"
Da die Werte jeweils durch ein "=" vom Namen getrennt sind, wird mit der nächsten "for /f"-Schleife anhand dieses Zeichens getrennt - der Einfachheit halber wird das Trennzeichen auch zwischen die einzelnen Namen-/Wert-Kombinationen (bereits in der benötigten Reihenfolge angegeben) gesetzt:
for /f "tokens=2,4,6 delims==" %%a in ("%%j=%%k=%%i") do
- zerlegt wird daher
User="stevey"=Pass="01807254095081091089001004"=Host="apple.com"
Da nur die Werte interessieren, werden die "tokens" 2 ("stevey"), 4 ("01807254095081091089001004") und 6 ("apple.com") verwendet, um das gewünschte Ergebnis in die Ausgabedatei zu schreiben:
>>"%Aus%" echo ftp://%%~a:%%~b@%%~c
Die Schreibweise "%%~a" entfernt schließlich noch die umgebenden Anführungszeichen.
Wenn Du übrigens das "echo off" auf "echo on" änderst, erhältst Du die einzelnen Befehlszeilen (mit "aufgelösten" Variablen) vor der Ausführung angezeigt. Starten solltest Du den Batch (beim Testen ohnehin immer) dazu dirket von der Kommandozeile.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

BATCH - Wort in Zeile suchen, wenn gefunden in txt-Datei schreiben. (ggfls. mit Umformatierung)

gelöst Frage von BlattlausOGBatch & Shell10 Kommentare

Hallo, ich habe ein erneutes Anliegen und weis nicht recht wie ich das bewerkstelligen soll. Es existiert eine "Beispiel.log" ...

Batch & Shell

Per Batch in ausgewählte oder vorgeschriebene Zeile einer .txt schreiben

gelöst Frage von pdiddoBatch & Shell6 Kommentare

Morgen Leute, vor lauter Bäumen sehe ich den Wald nicht mehr. Ich möchte, dass meine 1.bat in die erste ...

Batch & Shell

Bestimmte Zeile aus mehreren Dateien in eine neue Datei schreiben

gelöst Frage von Oggy76Batch & Shell5 Kommentare

Hallo zusammen, meine Kenntnisse in Sachen batch/shell sind ehr auf Anfängerniveau zu sehen. Grund -basics im CMD-Prompt sind vorhanden, ...

Batch & Shell

Powershell Export memberof jede Gruppe in neue Zeile schreiben

gelöst Frage von KangaroojackBatch & Shell12 Kommentare

Hallo Leute, zu Dokumentationszwecken muss ich bestimmte OU's mit Benutzerobjekten und deren Gruppenmitgliedschaften auslesen. Mein bisheriges Arbeitsmittel der Wahl ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 2 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 4 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 5 StundenMicrosoft3 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware10 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...