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

Textdatei in mehrere auftrennen inkl. Dateiname

Frage Entwicklung Batch & Shell

Mitglied: ZizouDK

ZizouDK (Level 1) - Jetzt verbinden

02.07.2007, aktualisiert 04.07.2007, 3883 Aufrufe, 8 Kommentare

Hallo,
ich bin ein totaler Neuling im Umgang und erstellen von Batchdateien.

Mein Problem ist, das ich eine Textdatei habe und die in mehrere Dateien(?.h, ?.c, ?.d usw.) auftrennen möchte.
Die Textdatei hat folgendes aussehen:

----------test.txt-----------
$ list konstants.h
Programmcode
$ list defs.d
Programmcode
$ list parameter.h
Programmcode
$
Ich hab mir die Batchdatei so vorgestellt:
1. nach „$ list “ suchen => ZeilenNR1
2. den Namen (z.B. parameter.h), der immer in der selben Zeile steht in die Variable Name speichern
3. nach dem nächsten „$ list “ suchen => ZeilenNR2
4. Neue Datei erstellen von (ZeilenNr1 + 1) bis (ZeilenNr2 - 1) mit dem Dateinamen Name (inkl. Dateiendung)
5. ZeilenNr1 = ZeilenNr2
6. und jetzt wieder ab Punkt 2 wiederholen

Kann mir dabei jemand helfen.
Super wäre es natürlich, wenn mir jemand eine Erklärung zur Batchdatei schreiben könnte, damit ich auch verstehe was ich da mache. Muss aber nicht sein! Nur wenn einer gerade Lust dazu hat.

Würde mich über zahlreiche Hilfe freuen, auch wenn es mir nur teilweise helfen kann.

Gruß ZizouDK
Mitglied: miniversum
02.07.2007 um 16:33 Uhr
Also im ersten Ansatz würd ichs so lösen:
01.
@echo off  
02.
 
03.
for /F "delims=" %%a in (test.txt) do call:doline "%%a" 
04.
pause 
05.
goto:eof 
06.
 
07.
:doline 
08.
set "line=%~1" 
09.
if "%line:~0,7%" equ "$ list " ( 
10.
set "filename=%line:~7%" 
11.
) else ( 
12.
echo %line%>>"%filename%" 
13.
14.
goto:eof
Hier wird diese Datei Zeile für Zeile durchlaufen und an "doline" übergeben.
Dort wird geprüft ob die ersten 7 Zeichen der Zeile "$ list " lauten. Wenn ja wird der Teil danach als Dateiname genommen (%filename%). Wenn nein wird die ganze Zeile in die Datei geschrieben die als Dateiname gespeichert wurde (%filename%).

miniversum
Bitte warten ..
Mitglied: ZizouDK
02.07.2007 um 20:27 Uhr
Hi,
das ging aber schnell.
Erstmal Danke dafür.

Jetzt ist mir nur folgendes aufgefallen:
1) in der ersten Datei schreibt mir die Batchdatei in der zweiten Zeile "ECHO ist ausgeschaltet (OFF)."

2) Die Leerzeilen und die Zeilen in der nur eine Zahl steht werden nicht übernommen. Ist es möglich, dass diese auch noch in die neue Datei übernommen werden?

Gruß ZizouDK
Bitte warten ..
Mitglied: miniversum
03.07.2007 um 08:35 Uhr
Versuchs mal obs so geht:
01.
@echo off  
02.
 
03.
for /F "tokens=1,* delims=:" %%a in ('findstr /n $ "test.txt"') do call:doline "%%b" "%%a" 
04.
pause 
05.
goto:eof 
06.
 
07.
:doline 
08.
set "line=%~1" 
09.
if "%line:~0,7%" equ "$ list " ( 
10.
set "filename=%line:~7%" 
11.
) else ( 
12.
  if "%line%" equ "" ( 
13.
    echo.>>"%filename%" 
14.
  ) else ( 
15.
    echo %line%>>"%filename%" 
16.
17.
18.
goto:eof
miniversum
Bitte warten ..
Mitglied: ZizouDK
03.07.2007 um 18:04 Uhr
Hi,
leider kein Unterschied.

Gruß ZizouDK
Bitte warten ..
Mitglied: miniversum
03.07.2007 um 18:33 Uhr
Also ich habs mal bei mir ausprobiert und da gehts.
Poste mal bitte den Teil deiner test.txt andem es hängt. vielleicht sehe ich da dann das problem.

miniversum
Bitte warten ..
Mitglied: ZizouDK
04.07.2007 um 17:11 Uhr
Hi,
die richtige Datei hab ich nicht auf meinem Privaten PC, aber ich teste sie hier mit folgender test.txt:

test.txt ---------------
$ list parameter.h
/*11111111
1
11111
11111
111

$ list konstanten.c
222222222
2
2222




222

$ list prog.d
3333333333333
$ list variablen.h

44444444
4


44444444

4444
$
Danke für deine Mühe.

noch was anderes:
kannst du mir auch zufällig bei folgendem Problem helfen?
Kann ich über eine Batchdatei auch in das Programm HyperTerminal Befehle eintragen?
Hab mir das so vorgestellt:
Ich mach eine Batchdatei in der die Liste aller benötigten Dateien mit dem Befehl „list“ steht. Nach jeder Datei soll die Batchdatei pausieren und mit betätigen einer beliebigen Taste fortgesetzt werden.
list.bat -------------
@echo off
?? list konstants.h
pause
?? chd ..
?? list defs.d
pause

?? list parameter.h
pause
----------------------------------
Wie mach ich das?

Gruß ZizouDK
Bitte warten ..
Mitglied: miniversum
04.07.2007 um 19:25 Uhr
Zum ersten teil:
hab das Problem gefunden. Damit sollte es gehn:
01.
@echo off  
02.
 
03.
for /F "tokens=1,* delims=:" %%a in ('findstr /n $ "test.txt"') do call:doline "%%b" "%%a" 
04.
pause 
05.
goto:eof 
06.
 
07.
:doline 
08.
set "line=%~1" 
09.
if "%line:~0,7%" equ "$ list " ( 
10.
set "filename=%line:~7%" 
11.
) else ( 
12.
  if "%line%" equ "" ( 
13.
    echo. 1>>"%filename%" 
14.
  ) else ( 
15.
    echo %line% 1>>"%filename%" 
16.
17.
18.
goto:eof
Zum zweiten Teil:
Ne tut mir leid davon hab ich keine Ahnung wie und ob das mit dem Hyperterminal geht. Mach doch ein extra Posting draus.

miniversum
Bitte warten ..
Mitglied: ZizouDK
04.07.2007 um 20:57 Uhr
Hi,
Super. Funktioniert. Werd es gleich morgen mal mit den richtigen Daten ausprobieren.
Danke für deine Hilfe.

Gruß ZizouDK
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateiname in Textdatei via Batch
gelöst Frage von plutowitschBatch & Shell4 Kommentare

Hallihallo, mein Problem ist wahrscheinlich für den Ein oder Anderen recht trivial, für mich als Anfänger jedoch schwieriger als ...

VB for Applications
Import Textdatei von Dateiname aus Zelle
Frage von grasihuepferVB for Applications2 Kommentare

Hi Leute, Ich möchte eine Textdatei importieren. Und zwar soll der Pfad des Datei Ortes in einer bestimmten Zelle ...

Windows 7
Mehrere Textdateien in verschiedenen Ordnern zu einer Textdatei zusammenführen ?
gelöst Frage von chr2002Windows 72 Kommentare

Hallo, irgendwie finde ich nirgends ein anständiges Programm mit dem man mehrere Textdateien zu einer großen zusammenführen kann. Die ...

Batch & Shell
Mehrere Textdateien mit Datumsstempel in einer Textdatei pro Tag zusammenfassen
gelöst Frage von MenoraxBatch & Shell9 Kommentare

Guten Morgen an alle, ich beschäftige mich seit mehreren Tagen mit einem Script, wobei ich leider keine Lösung finden ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 17 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 19 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...