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 ersten und letzten 2 Zeilen einer Textdatei löschen

Frage Entwicklung Batch & Shell

Mitglied: dumbo

dumbo (Level 1) - Jetzt verbinden

01.12.2006, aktualisiert 02.12.2006, 7050 Aufrufe, 4 Kommentare

Es gibt hier ja Tipps in Hülle und Fülle, aber ich fürchte ich blicks nicht.
Wie kann man bitte die 2 ersten und letzten Zeilen einer Textdatei aus selbiger entfernen oder aber
beim erneuten einlesen diese Zeilen weglassen?

Mal ausführlicher:

cls
dir /-C > bla.txt && @for /F "eol= tokens=3,4 skip=7 delims= " %%i in (bla.txt) do @echo Name/Groesse: %%j / %%i >> sizes.txt

--
dir /-C listet den Verzeichnisinhalt(Dateigroesse ohne Punkte in Bytes) auf und schreibt die Ausgabe in die Datei bla.txt
Daraus bedient sich die for Schleufe und gibt mir nur Spalte 3 und 4 wieder (Dateiname und -größe -in Bytes) und gibt das in die Datei sizes.txt

Wenn ich mir die Datei nun anschaue, so enthält diese:
Name/Groesse: bla.txt / 0
Name/Groesse: size.bat / 255
Name/Groesse: INTERESSANTE_DATEI / 25798954
Name/Groesse: bytes / 255
Name/Groesse: bytes / 12513308672

Die Dateien, von denen ich exakt diese beiden Daten benötige lägen also in Zeile 3 sodass ich Zeile 1+2 und 3+4 nicht benötige.

Nur wie bekomme ich die wech?
Mitglied: AxelHahn
01.12.2006 um 17:47 Uhr
Hi,

warum diese Ausgabe in eine Datei und ein Dir-Kommando, was für deinen Fall unnütze Ausgaben mitliefert??

Auf Kommandozeile:
for /F %a in ('dir /b [Verzeichnis]') do echo %a %~za

... in einer Batch doppelte % verwenden

Viele Grüsse
-= Axel =-

Nachtrag:
Wenn Leerzeichen drin sind, braucht man noch tokens=*:
for /F "tokens=*" %a in ('dir /b [Verzeichnis]') do echo %a %~za
Bitte warten ..
Mitglied: Biber
01.12.2006 um 17:50 Uhr
Moin dumbo,

auch wenn ich es momentan nicht nachvollziehen kann, wieso es nun gerade die dritte der Dateien aus der DIR-Anzeige sein soll..
...machbar ist mit Batch ja alles.
[Sieht nur manchmal unappetitlich aus.]

Am CMD-Prompt:
01.
>for /F "tokens=3,*" %i in ('dir /-c ^|more +5^|findstr /n .^|findstr /r "^3:"') do @echo Name/Größe: %j/%i 
02.
Name/Größe PDF_ConverterPro_drucker.zip/6723
... wobei, von innen nach außen erklärt:
dir /-c ....die "übliche" DIR-Anzeige; Größenangaben ohne Tausenderpunkte
Da ist ein 5-Zeiliger Vorspann dabei ("Datenträger in Laufwerk X: heißt ..." usw)
Den filtere ich wech mit ^|more +5.
Den verbleibenden Rest numeriere ich durch mit findstr /n .
und will von den durchnumerierten Zeilen nur die Zeile haben, die mit "3:" anfängt. findstr "^3:"
Das alles geht INNEN ab und dampft die Ausgabe auf eine, die dritte Zeile und damit die dritte Datei zusammen.
Außen, also die Spaltenauswertung dieser Zeile bleibt alles (fast) gleich. Die Tokens 3,4 heißen bei mir 3,* wegen Dateien mit Leerzeichen.

Als Batch mit Parameter welcheZeile sähe das dann ungetestet so aus:

01.
:: ZeigMirDateiNumero.bat [Pflicht-Parameter1: Zeilennummer] 
02.
@for /F "tokens=3,*" %%i in ('dir /-c ^|more +5^|findstr /n .^|findstr /r "^%1:"') do @echo Name/Größe: %%j/%%i
HTH Biber
Bitte warten ..
Mitglied: Biber
01.12.2006 um 18:08 Uhr
Und, wenn ich Axels Idee aufgreife und mit der einfachen DIR-Ausgabe die dritte Zeile rausflöhen will:
[CMD-Prompt]
01.
>for /F "delims=: tokens=2" %a in ('dir /b *.zip^|findstr /n .^|findstr "^3:"') do @echo %a %~za 
02.
PDF_ConverterPro_drucker.zip 6723
-oder ohne Findstr und Nummerieren..-
01.
>Set /a "x=0">nul & for /F %a in ('dir /b *.zip') do @Set /a "x+=1">nul & @if !x!==3 @echo %a %~za 
02.
PDF_ConverterPro_drucker.zip 6723
Als Batch mit [Parameter zeilennr]
01.
::-----DispFileNo.Bat Parameter nr 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
Set /a "x=0" 
04.
for /F %%a in ('dir /b') do ( 
05.
     Set /a "x+=1" 
06.
     if [!x!]==[%1]  ( 
07.
             echo %%a %%~za  
08.
            goto :eof 
09.
10.
)
Gruß
Biber
Bitte warten ..
Mitglied: dumbo
02.12.2006 um 16:03 Uhr
auch wenn ich es momentan nicht
nachvollziehen kann, wieso es nun gerade die
dritte der Dateien aus der DIR-Anzeige sein
soll..

Das ist ganz einfach ;=)
Ein tool benötigt von wechselnden Dateien immer die Größe in Byte, also dachte ich mir, per batch ist das sicher sinniger, als ständig in den Eigenschaften nachzuschauen und das einzeln für jede Datei.

Es soll aber nicht nur die dritte sein, sondern bedingt durch die Ausgabe von dir /-C ab der 3. bis zur 3. letzten.

Ich werde mir eure Beispiel mal zu Gemüte führen und hoffentlich keine Fragen mehr haben.
Vielen Dank für die Mühe.
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...