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

Per Batch bestimmte Zeilen einer Textdatei in eine 2. Textatei kopieren

Frage Entwicklung Batch & Shell

Mitglied: Moni71

Moni71 (Level 1) - Jetzt verbinden

08.07.2010 um 15:29 Uhr, 14173 Aufrufe, 4 Kommentare

Hallo !

Ich versuche schon eine Weile aus einer Textdatei mit sehr langen Datensätzen (ca. 840 Zeichen) bestimmte Zeilen in eine zweite Datei zu kopieren.

Es sollen nur die Zeilen in die 2. Datei geschrieben werden, die an Stelle 322 den Inhalt "02", "03" oder "91" haben. Alle anderen sollen ignoriert werden.

mein Ansatz:

@echo off

for /f %%i in (eingabedatei.txt) do (

set zeile=%%i
set vergl=%zeile:~321,2%

if "%Vergl%"=="91" echo %zeile%>>ausgabedatei.txt
if "%Vergl%"=="02" echo %zeile%>>ausgabedatei.txt
if "%Vergl%"=="03" echo %zeile%>>ausgabedatei.txt
)


Das funktioniert nicht.

In der Variable "Zeile" stehen nur die ersten 18 Zeichen der Datenzeile. (Die Textdatei enthält auch Leerzeichen innerhalb der Zeilen. Kann das damit zusammenhängen?)

In der Variable "Vergl" steht "~321,2" drin, statt der Inhalt. Das kann aber nichts mit der Textlänge zu tun haben. Zum Test habe ich es mit Postition 8 im Text versucht: Das selbe Problem.

Kann mir hier jemand weiterhelfen???? Ich habe schon die verschiedensten Foren erfolflos durchsucht.
Mitglied: Biber
08.07.2010 um 15:56 Uhr
Moin Moni71,

Ich habe schon die verschiedensten Foren erfolflos durchsucht.
Wozu das denn? Batches dekliniert doch kein anderes Forum so durch wie wir...

Du musst nochmal kurz vor den kommenden Batches mit "SetLocal /?" am CMD-Prompt recherchieren.

Da erfährst du dann ausführlicher, dass
a) mit "SetLocal" alle im Batch verwendeten Variablen als "nur für diesen Batch sichtbar" angekündigt werden
b) mit "SetLocal EnableDelayedExpansion" eine "verzögerte Variablenauflösung" ermöglicht wird, die erlaubt, Variablen innerhalb einer CMD-Befehlszeile zu setzen und zu lesen.

Dein Schnipsel würde danach sinngemäß so aussehen:
01.
@echo off & SetLocal EnableDelayedExpansion 
02.
 
03.
for /f %%i in (eingabedatei.txt) do ( 
04.
 
05.
set "zeile=%%i" 
06.
set "vergl=%zeile:~321,2%" 
07.
 
08.
if "!Vergl!"=="91" echo %%i>>ausgabedatei.txt 
09.
if "!Vergl!"=="02" echo %%i>>ausgabedatei.txt 
10.
if "!Vergl!"=="03" echo !zeile!>>ausgabedatei.txt 
11.
)
Bei der 1.+2. "IF !vergl!" -Anweisung habe ich mal das "%%i" ECHOen lassen -> da ist keine Schreibweise mit "!" statt "%" möglich/nötig.
Bei allen statischen Variablen, die innerhalb von IF() oder FOR()-Anweisungsklammern gesetzt werden aber schon.

Grüße
Biber
Bitte warten ..
Mitglied: Moni71
08.07.2010 um 17:05 Uhr
Hallo Biber!

Danke für Deine schnelle Antwort.

Ich habe den Code extra über die Zwischenablage eingefügt, um Tippfehler auszuschließen.

Leider habe ich immer noch das Problem, dass die Datenzeile abgeschnitten wird (offensichtlich beim ersten Leerzeichen).
Die Textdatei hat Datensätze mit einer Länge von ca. 840 Zeichen an festen Positionen. Dazwischen sind immer wieder auch Leerzeichen (mehrere).

In der Variable "vergl" steht als Inhalt: ~321,2

Ich versteh das einfach nicht.
Dürfen etwa keine Leerzeichen in der Datenzeile sein? Oder gibt es eine maximal zulässige Länge des Datensatzes, die hier überschritten wird?
Bitte warten ..
Mitglied: bastla
08.07.2010 um 17:06 Uhr
Hallo Moni71!

Damit die Zeilen trotz der Leerzeichen komplett eingelesen werden, noch die Zeile 3 auf
for /f "delims=" %%i in (eingabedatei.txt) do (
ergänzen, und die Zeile 6 sollte (im Sinne der angeführten Erklärungen) eher so aussehen:
set "vergl=!zeile:~321,2!"
Grüße
bastla
Bitte warten ..
Mitglied: Moni71
08.07.2010 um 17:21 Uhr
Hallo bastla!

Danke für den Tip. Jetzt funktioniert es.

Liebe Grüße

Moni71
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH: Textdatei ab einer bestimmten Zeile kopieren
gelöst Frage von lwentzBatch & Shell3 Kommentare

Hallo, ich habe folgende Anforderung: Ich möchte ein Log-File (Textdatei mit einem Eintrag pro Zeile) in ein neues Log-File ...

Batch & Shell
Bestimmte Zeile einer Textdatei mit Batch auslesen
gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Batch & Shell
Batch oder Powershell: Teile einer Textdatei kopieren (mehrere Zeilen)
gelöst Frage von ole-objektBatch & Shell5 Kommentare

Hallo, ich habe mehrere txt-Dateien, in denen jeweils mehrere Abschnitte mit Daten vorliegen. Nun möchte ich jede dieser Textdateien ...

Batch & Shell
Wie ändert eine batch eine bestimmte zeile in einer anderen batch
Frage von J4YK0BBatch & Shell3 Kommentare

Wie schreibt eine batch eine andere batch um, aber nur eine SPEZIELLE zeile? Das System ist wiefolgt. Man gibt ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 9 MinutenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 StundeSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 16 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 19 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...