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
GELÖST

Die beiden letzten Zeilen einer Textdatei löschen

Frage Entwicklung Batch & Shell

Mitglied: cced-de

cced-de (Level 1) - Jetzt verbinden

24.10.2008, aktualisiert 15:41 Uhr, 6375 Aufrufe, 3 Kommentare

Hallo,
Ich habe auf meine Frage schon diverse Antworten in der DB gefunden, aber keine funktioniert auf mein Problem.
Ich hoffe Ihr könnt mir da weiterhelfen.

Mein Anliegen:
Per Dir Befehl Ordner in eine Txt Datei schreiben lassen.
Dann die ersten 7 Zeilen und die je ersten 36 Zeichen jeder zeile löschen lassen.
Bis hierhin funktioniert alles.

Danach die letzten 2 Zeilen aus der Txt Datei löschen lassen, um die in der Txtdatei verbleibenden
Ordnernamen weiterzuverarbeiten.
Und das funktioniert bei mir leider nicht.

Hier mein Scriptansatz:
01.
@echo off 
02.
cls 
03.
 
04.
:: Listet alle Verzeichnisse in list.txt 
05.
	DIR /AD "H:\!!_Test\Test" > list.txt 
06.
 
07.
:: Liest Verzeichnisse aus List.txt,löscht unnütze Zeichen und schreibt in List.New 
08.
	for /f "skip=7 usebackq delims=" %%i in ("list.txt") do call :ProcessLine "%%i" 
09.
	goto KillLines 
10.
 
11.
	:PROCESSLINE 
12.
	set "Zeile=%~1" 
13.
 
14.
::ab 35. Buchstaben ausgeben 
15.
	(echo %Zeile:~36%)>>"List.new" 
16.
	goto :eof 
17.
 
18.
:: Hier sollen die letzten 2 Zeilen mit beliebigem Inhalt aus List.New gelöscht werden. 
19.
:: Danach Soll List.New in List.txt umbenannt werden. 
20.
 
21.
:KillLines 
22.
	move "List.new" "List.bak" 
23.
	for /f "delims=:" %%i in ('findstr /n $ "list.bak"') do set EntfZeile=%%i 
24.
	for /f "tokens=1* delims=:" %%i in ('findstr /n $ "List.bak"') do if %%i neq %EntfZeile% echo.%%j>"List.bak" 
25.
	move "List.bak" "List.txt" 
26.
 
27.
:end
Ich hoffe Ihr könnt mir hier helfen.
LG CCED
Mitglied: bastla
24.10.2008 um 09:44 Uhr
Hallo cced-de!

Vielleicht solltest Du Dir einmal
dir /b /ad "H:\!!_Test\Test"
ansehen ...

Grüße
bastla
Bitte warten ..
Mitglied: cced-de
24.10.2008 um 09:48 Uhr
Au Man...
Warum einfach wenn´s auch umständlich geht oder... ich sehe den Wald vor lauter bäumen nicht mehr !!
Sorry ! und DANKEEE

P.s. aber rein interesse halber...
Wie löscht man die letzten x Zeilen aus einer Txt Datei, wenn man deren Inhalt nicht kennt ?
LG
CCED
Bitte warten ..
Mitglied: bastla
24.10.2008 um 15:41 Uhr
Hallo cced-de!

Wie löscht man die letzten x Zeilen aus einer Txt Datei, wenn man deren Inhalt nicht kennt ?
Etwa so:
01.
@echo off & setlocal 
02.
set "Datei=D:\List.txt" 
03.
set "Entf=2" 
04.
set "Bak=bak" 
05.
 
06.
set Anzahl=0 
07.
for /f "delims=:" %%i in ('findstr /n "^" "%Datei%"') do set Anzahl=%%i 
08.
set /a Bis=%Anzahl%-%Entf% 
09.
 
10.
if %Bis% leq 0 ( 
11.
    echo Die Datei "%Datei%" enthaelt zu wenig Zeilen! 
12.
    goto :eof 
13.
14.
 
15.
move "%Datei%" "%Datei%.%Bak%" 
16.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Datei%.%Bak%"') do if %%i leq %Bis% (>>"%Datei%" echo\%%j)
Die verbleibende Sicherungskopie in "%Datei%.%Bak%" kannst Du natürlich auch noch entfernen lassen.
Ansonsten gäbe es auch noch "findstr /v", soferne Du ein eindeutiges/verlässliches Suchkriterium für unerwünschte Zeilen hast, also etwa:
dir /ad|findstr /v "Datei(en) Verzeichnis(se),"
Wenn Du das noch mit einem "more +x" kombinierst, kommt zB sowas raus:
dir /ad|findstr /v "Datei(en) Verzeichnis(se),"|more +5
Oder natürlich, für Deinen obigen Zweck, die zweit-einfachste Variante:
dir /ad|findstr "<DIR>"
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...