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

Daten via findstr ein eine neue Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Godzilla13

Godzilla13 (Level 1) - Jetzt verbinden

05.11.2010, aktualisiert 09:42 Uhr, 5901 Aufrufe, 7 Kommentare

Hallo zusammen,

vielleicht könnt ihr mir bei einem Batch in Verbindung mit findstr helfen. Ich habe schon ein wenig die anderen Beiträge studiert, finde aber nichts was 100% passt und bekomme es selber mit meinem Wissensstand auch nicht hin.

Ich habe eine Textdatei die wie folgt aufgebaut ist:
PFAD\GENERATOR>copy PFAD\Textnr_00\010000-00_00_00.xml  MODULE\010000-00_00_00.xml  
Das System kann die angegebene Datei nicht finden. 
 
PFAD\GENERATOR>copy PFAD\Textnr_81\018189-00_00_01.xml  MODULE\018189-00_00_01.xml  
        1 Datei(en) kopiert. 
 
PFAD\GENERATOR>copy PFAD\Textnr_73\017322-02_01_01.xml  MODULE\017322-02_01_01.xml  
        1 Datei(en) kopiert. 
 
PFAD\GENERATOR>copy PFAD\Textnr_73\017337-00_01_02.xml  MODULE\017337-00_01_02.xml  
        1 Datei(en) kopiert. 
usw.
Diese Liste sollte so modifiziert werden das am Ende eine neue Liste mit den einzelnen Kapiteln heraus kommt, jeweils mit einer Leerzeile als Abstand zwischen den Einträgen.
010000-00_00_00.xml 
 
018189-00_00_01.xml 
 
017322-02_01_01.xml 
 
017337-00_01_02.xml
Gerne kann mit findstr dafür eine gesonderte Textdatei erstellt werden.

Optional wären noch folgende Dinge super:

  • Das .xml kann noch entfernt werden, sodass nur die reinen Kapitelnamen erscheinen.
  • Als Dateiname den Dateinamen einer anderen Datei heranziehen welche unter PFAD\KAPITELLISTE\ als *.xml Datei zu finden ist. In dem Pfad liegt immer nur eine Datei. Bsp.: Datei 18106-01-01.xml bewirkt den Dateinamen 18106-01-01.txt
  • Angabemöglichkeit eines Ausgabepfads für die zu generierende neue Textdatei mit dem gewünschten Inhalt.

Danke schonmals! Schöne Grüße,
Godzilla13
Mitglied: bastla
05.11.2010 um 10:12 Uhr
Hallo Godzilla13!

Hinsichlich der Pfadangaben wie zB
PFAD\Textnr_00\010000-00_00_00.xml
wäre noch eine genauere Beschreibung sinnvoll - insbesondere, ob Leerzeichen vorkommen können.

Auf Basis der angegebenen Beispiele wäre die Minimalvariante (zum Testen direkt in der CMD-Shell)
for /f "tokens=3" %i in ('findstr /i "\.xml" "D:\Die Textdatei.txt"') do @for /f "delims=" %a in ("%i") do @(echo %~na & echo\)>>con
Die Ausgabe erfolgt so nur auf dem Bildschirm - zum Testen mit einer Datei als Ziel einfach "con" durch einen Pfad ersetzen ...
Als Dateiname den Dateinamen einer anderen Datei heranziehen
Dateiname wofür?

Grüße
bastla

[Edit] Fehlenden Teil der Zeile nachgereicht [/Edit]
Bitte warten ..
Mitglied: Godzilla13
05.11.2010 um 10:32 Uhr
Hi bastla,

Hinsichlich der Pfadangaben wie zB
wäre noch eine genauere Beschreibung sinnvoll - insbesondere, ob Leerzeichen vorkommen können.

Hier ein Beispiel für den kompletten Pfad:
S:\Generierung\Buchgenerierung\GENERATOR>copy S:\Daten\DATEN_XML\BAL\Sprache_01\Textnr_81\018189-00_00_01.xml  MODULE\018189-00_00_01.xml  
        1 Datei(en) kopiert.
Die Ausgabe erfolgt so nur auf dem Bildschirm - zum Testen mit einer Datei als Ziel einfach "con" durch einen Pfad
ersetzen ...
Bei der Testzeile werden mir in der ausgegebenen Textdatei nur Zeilen mit dem Text "%~na " angezeigt.

> Als Dateiname den Dateinamen einer anderen Datei heranziehen
Dateiname wofür?
Datainame für die auszugebene Datei. Dessen Namen sich je nach Kapitelliste natürlich ändert. Wäre nur eine weitere Erleichterung, Alterantiv benenne ich die Datei eben nach dem Batch per Hand kurz um.
Bitte warten ..
Mitglied: bastla
05.11.2010 um 13:06 Uhr
Hallo Godzilla13!

Sorry - da war ein nicht ganz unwichtiger Teil der Zeile beim Posten auf der Strecke geblieben - ist jetzt aber oben schon ergänzt ...
Hinsichtlich der "Dateinamen" bin ich offensichtlich etwas begriffstutzig: Wenn nur eine Liste (mit Kapiteln) erzeugt wird, wozu dann mehrere Dateinamen?
Noch eine Klarstellung zu den Pfaden: Diese enthalten demnach keine Leerzeichen?

Grüße
bastla
Bitte warten ..
Mitglied: Godzilla13
05.11.2010 um 14:31 Uhr
Nun funktioniert deine Zeile wunderbar. Schonmal vielen Dank dafür!

Zum Dateinamen, vielleicht verstehen wir uns falsch. Die Liste der Kapitel soll archiviert werden und den selben Namen haben wie die XML Datei, welche quasi die Quell-Textdatei generiert, aus der du ja oben die gewünschte neue Textdatei generierst.

Vielleicht ist das ganz umzusetzen auch viel zu umständlich, dann belassen wir es dabei. Mir ist mit dem Code oben schon sehr geholfen.

Und ja, der Pfad enthält keine Leerzeichen.

Edit: Ich habe gerade versucht die Zeile in eine .BAT Datei zu schreiben, da meldet er beim ausführen aber folgendes:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters 
ist ungültig: %~na & echo\)>>con
Bitte warten ..
Mitglied: bastla
05.11.2010 um 16:18 Uhr
Hallo Godzilla13!

In Batch sind alle Laufvariablen von "for"-Schleifen (hier also %i und %a) mit doppelten AnführungsProzentzeichen zu schreiben - zB wäre das für die zitierte Stelle dann
echo %%~na & echo\)>>con
Zu den Dateinamen: Die einzelnen Bestandteile kannst Du so erhalten (wieder für die Konsole mit nur einem Prozentzeichen):
for /f "tokens=3" %i in ('findstr /i "\.xml" "D:\Die Textdatei.txt"') do @for /f "delims=" %a in ("%i") do @(echo Pfad: %~dpa & echo Name: %~na & echo Typ: %~xa & echo Name + Typ: %~nxa)>>con
Details dazu mit "for /?" (ziemlich am Ende) ...

Grüße
bastla

[Edit] "%" werden jetzt auch so genannt [/Edit]
Bitte warten ..
Mitglied: Godzilla13
08.11.2010 um 08:01 Uhr
Kannst du mir das mit den Anführungszeichen nochmals hier posten? Ich bekomms gerade nicht hin und oben hast du keine Anführungszeichen drin nur noch ein zusätzliches %.
Das Problem mit dem Dateinamen verstehen wir uns immer noch falsch, aber lösen wir erstmal das Batch Datei Problem .


[Edit]Problem erkannt und gelöst[/Edit]

Dann zum Dateinamen: Der Dateinamen soll nicht aus dem Inhalt der Textdatei generiert werden. Im Pfad XY (Der Pfad unterscheidet sich vom Pfad der Quelltextdatei, zusätzliche Pfadangabe als notwendig)liegt eine .xml Datei. Das Batch müsste lediglich nachschauen wie diese Datei heißt und genau so die .TXT Datei benennen welche das Batch generiert.
Bitte warten ..
Mitglied: Godzilla13
08.11.2010 um 09:42 Uhr
So ich habe das mit dem Dateinamen nun mit einer weiteren "for" Zeile hinbekommen.

Vielen Dank für deine Hilfe mit dem Batch.
Bitte warten ..
Ähnliche Inhalte
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, ...

Windows 7
Txt Datei mit findstr durchsuchen
gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Batch & Shell
Mal eine neue Art von Abfrage mit findstr
gelöst Frage von DaTobsnBatch & Shell8 Kommentare

Guten Abend Community! Ich komme mit einem Code einfach nicht weiter und hoffe ihr könnt mir hier helfen Also ...

Batch & Shell
Mit Batch-Datei eine Datei lesen, Zeilen ändern und als neue Datei schreiben
gelöst Frage von GeoSemBatch & Shell20 Kommentare

Hallo Ich versuche nun schon seit einiger Zeit das "kleine" Script (unter Windows 8) zum laufen zu bringen - ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 3 StundenErkennung und -Abwehr

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücke Spectre und ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...