Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Per Batch Die letzte Zeile einer .txt Datei auslesen und in einer Variablen speichern

Frage Entwicklung Batch & Shell

Mitglied: Motorcross

Motorcross (Level 1) - Jetzt verbinden

17.10.2010 um 01:21 Uhr, 14051 Aufrufe, 4 Kommentare

Hallo Administratoren,

ich würde gerne über einen Batchscript die letzte Zeile einer .txt Datei auslesen und in einer Variablen speichern.
Ich würde mich über einen für mein Problem angepassten Script freuen.
MfG Motorcross
Mitglied: bastla
17.10.2010 um 01:33 Uhr
Hallo Motorcross!

Nicht angepasst, sondern ganz neu geschrieben :
01.
@echo off & setlocal 
02.
set "LetzteZeile=" 
03.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "D:\Deine Datei.txt"') do set "LetzteZeile=%%j" 
04.
echo\%LetzteZeile%
Zeile 3, falls keine Leerzeilen zu berücksichtigen sind:
for /f "usebackq delims=" %%i in ("D:\Deine Datei.txt") do set "LetzteZeile=%%i"
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
17.10.2010 um 16:21 Uhr
@bastla

Mit FINDSTR /N bin ich vor einiger Zeit mal voll auf die Falle geschnautzt
Bei Zeilen, die mit einem Doppelpunkt beginnen, wird dieser einfach eliminiert.
Als Beispiel (ja natürlich ginge das mit TYPE einfacher, aber das ist hier nicht der Sinn):
01.
@echo off &setlocal 
02.
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%~0"') do ( 
03.
REM for /f "tokens=* delims=1234567890" %%a in ('findstr /n "^" "%~0"') do ( 
04.
  set "line=%%b" 
05.
  REM set "line=%%a" 
06.
  call :echoLine 
07.
08.
pause>nul 
09.
goto :eof 
10.
 
11.
:echoLine 
12.
setlocal enabledelayedexpansion 
13.
echo\!line! 
14.
REM echo\!line:~1! 
15.
endlocal 
16.
goto :eof 
17.
 
Mit REM auskommentiert, meine Lösung. Der Unterschied: Label :echoLine ohne bzw. mit vorangestelltem Doppelpunkt.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
17.10.2010 um 16:45 Uhr
Hallo rubberman!

Stimmt (wobei in Zeilen, die mit mehreren Doppelpunkten beginnen, alle eliminiert werden - ist ja der vorgegebene Delimiter) ...
Nur interessehalber: Wozu brauchst Du "delayedExpansion"?
Noch ein Hinweis: Mit "%~f0" würde Deine Demo auch funktionieren, wenn der Batch nur mit Namen (also ohne Extension) aufgerufen wird ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
17.10.2010 um 16:50 Uhr
Hallo bastla,

das delayedExpansion vereinfacht den Umgang mit Sonderzeichen bei der ECHO Ausgabe. Anders gesagt, du brauchst sie nicht zu maskieren.
Siehe
@echo off &setlocal
und
pause>nul

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
Per Batch eine XLS-Datei in eine TXT-Datei umwandeln (5)

Frage von skiing69 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (31)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...