Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Einträge in einer Datei zählen

Frage Entwicklung Batch & Shell

Mitglied: wiboma

wiboma (Level 1) - Jetzt verbinden

06.07.2010 um 23:33 Uhr, 9600 Aufrufe, 5 Kommentare

Hallo,
ich habe ein (hoffentlich) kleines Problem.

Ich möchte die Anzahl der Zeilen einer Textdatei mit Hilfe eines Batch-Programmes zählen.
ich habe etwas herumexperimentiert, konnte mein Problem aber nicht lösen

Mit der Anweisung:

for /f %%i in (datei.txt) do echo %%i

bekomme ich die Einträge in der Datei angezeigt. Das ist so auch ok.

mit der Anweisung

for /f %%i in (datei.txt) do set pp=%%i

wurde der letzen Eintrag der Datei der Variablen pp zugewiesen.

Das Zählen der Einträge habe ich dann mit der Anweisung:

set /a zz=0
for /f %%i in (datei.txt) do set /a zz=%zz%+1


probiert, was allerdings nicht funktionierte.
Die Variable zz hat unabhängig der Einträge/Zeilen in der Datei nur den Wert 1 angenommen.

Es wäre toll, wenn mir hier jemand weiterhelfen könnte.
Mitglied: Nottrott
07.07.2010 um 00:16 Uhr
Hi,

das Problem heißt verzögerte Erweiterung von Umgebungsvariablen, dein zz wird in der Schleife schon vor dem Ausführen der Zeile mit 0 ersetzt..
Umgehen kannst du das, indem du die cmd mit dem Parameter /V:ON aufrufst und das %zz% durch !zz! ersetzt.

Schönen Abend noch
Nottrott
Bitte warten ..
Mitglied: bastla
07.07.2010 um 00:26 Uhr
Umgehen kannst du das, indem du die cmd mit dem Parameter /V:ON aufrufst
... oder auch einfach mit einem
setlocal enabledelayedexpansion
Trotzdem erforderlich ist, dass Du
das %zz% durch !zz! ersetzt.
- Du könntest aber auch einfach
for /f %%i in (datei.txt) do set /a zz+=1
verwenden (wobei Leerzeilen jeweils nicht mitgezählt werden) ...
Alternativen zum "Selbstzählen" wären per "find" oder "findstr" zu realisieren:
for /f %%i in ('find /c /v "§§§§§"<datei.txt') do set /a zz=%%i
(wobei "§§§§§" für irgendeinen Suchbegriff steht, der in der "datei.txt" garantiert nicht enthalten ist - da wegen des "/v" alle anderen Zeilen gezählt werden, erhältst Du damit die Gesamtzeilenanzahl)
for /f "delims=:" %%i in ('findstr /n "^" datei.txt') do set /a zz=%%i
Hier werden alle Zeilen, die das Suchkriterium "^" (= hat einen Zeilenanfang ) erfüllen, nummeriert ausgegeben und jeweils die Zeilennummer in die Variable übernommen.

Die beiden letzten Varianten zählen auch Leerzeilen.

Grüße
bastla

P.S.: Willkommen im Forum, wiboma!
Bitte warten ..
Mitglied: wiboma
07.07.2010 um 08:03 Uhr
Ich bedanke mich für die schnelle Hilfe.

Funktioniert mit += prima.
Bitte warten ..
Mitglied: wiboma
07.07.2010 um 08:13 Uhr
Hallo,

ich bedanke mich für die schnelle Rückantwort.

BASTLA hat ebenfalls auf meine Anfrage geantwortet und eine einfache Lösung angeboten, mit: set /a zz+=1

das hat funktioniert.

Deine Lösung habe ich auch ausprobieren wollen, bin aber daran gescheitert, dass nach der Zeile

cmd /N:on

das DOS -Fenster mit Prompt erscheint, die folgenden Anweisungen in der Batch-Datei aber nicht mehr ausgeführt werden.

Die Batch bricht praktisch nach der Zeile cmd /N:on ab.

Wie kann man das umgehen ?
Bitte warten ..
Mitglied: pieh-ejdsch
07.07.2010 um 11:57 Uhr
Hi wiboma,

NICHT: /Nordpol
Sondern: /Viktor

gib mal im cmd Fenster

cmd /?
ein

und auch Willkommen im Forum

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien in einen Ordner zählen mit einer bestimmten Dateiendung (4)

Frage von tommhii zum Thema Batch & Shell ...

Linux
gelöst E-Mail Adressen zählen (2)

Frage von plutowitsch zum Thema Linux ...

Batch & Shell
gelöst Dateien zusammenführen inkl. finden von doppelten Einträgen (3)

Frage von miczar zum Thema Batch & Shell ...

Neue Wissensbeiträge
Notebook & Zubehör

WOL bei HP Notebooks

(2)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (14)

Frage von Spitzbube zum Thema Netzwerke ...

Windows Server
Seit IP Umstellung DC DNS Fehler (14)

Frage von Yaimael zum Thema Windows Server ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (14)

Frage von Voiper zum Thema Weiterbildung ...

Ausbildung
Sinnvolles Einstiegsgehalt für FiSi nach der Ausbildung (13)

Frage von nutzername1 zum Thema Ausbildung ...