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

Letzten 7 Zeilen kopieren und in eine neue Datei einfügen.

Frage Entwicklung Batch & Shell

Mitglied: Razfaz

Razfaz (Level 1) - Jetzt verbinden

11.11.2010, aktualisiert 12.11.2010, 4600 Aufrufe, 15 Kommentare

Hallo zusammen,

ich habe eine Text Datei.
Dort möchte ich jeden Tag (Geplanter Task) immer die letzten 7 Zeilen kopieren und in eine neue txt Datei einfügen.
Diese neue Datei soll dann per E-Mail automatisch an einen Empfänger verschickt werden. Diese Datei kann jeden Tag überschrieben werden.
Am besten mit einer bat Datei. Wie setzte ich das am besten um?
Vielen Dank schon mal für Eure Unterstützung.
Mitglied: user132
11.11.2010 um 09:50 Uhr
Morgen,

das finden von den letzten 7 zeilen machst du mit "findstr /?".
Das Erstellen der neuen Datei mit << >> (SET /?) der logischen Verschiebung.
Das verschicken kannst du mit der "blat.exe" machen.
Hinzufügen eines Task kannst mit "AT /?" erledigen.

Gruß
Bitte warten ..
Mitglied: Razfaz
11.11.2010 um 09:59 Uhr
Danke, da ich mich aber auf diesem Gebiet nicht gut auskenne, wollte ich fragen, wie der Code dazu ausehen würde.
Danke!
Bitte warten ..
Mitglied: 60730
11.11.2010 um 10:03 Uhr
Moin,

01.
REM Die Zeilen auslesen und Variable für die Zeilennummer setzen 
02.
for /f "tokens=1 delims=:" %%a in ('findstr /n "." "laufwerk:\pfad\dateiname"') do set kplt=%%a 
03.
 
04.
REM ziehe  7 ab 
05.
set /a sieben=%kplt%-7 
06.
REM zeig mir die letzten (zwerge) 
07.
more +%sieben% "laufwerk:\pfad\dateiname">"laufwerk:\pfad\dateiname2"
Gruß

edit hab mal eine zweite Variable genommen (kplt -7 sollte nicht kplt heissen) /edit
edit /² waren dann doch insgesamt 6 zusätzliche " - hätte man[n] auch als Variable nehmen können ala:

set filetoworkwith="%userprofile%Desktop\Test\123456.txt"
for /f "tokens=1 delims=:" %%a in ('findstr /n "." "%filetoworkwith%"') do .....
Bitte warten ..
Mitglied: Stormbob
11.11.2010 um 10:09 Uhr
Powershell würde ich klappen

Get-Content c:\test.txt | Select-Object -last 7

oder mit den GNU32 Utilities, dort dann den tail-Command

tail -n 7 c:/test.txt
Bitte warten ..
Mitglied: Razfaz
11.11.2010 um 10:11 Uhr
Danke, aber bei Abruf erschein ein Fehler:
Auf die Datei C:\Dokumente und Einstellungen\xxx\Desktop\Test\+ kann nicht
zugegriffen werden.
Bitte warten ..
Mitglied: 60730
11.11.2010 um 10:15 Uhr
Zitat von Razfaz:
Danke, aber bei Abruf erschein ein Fehler:
Auf die Datei C:\Dokumente und Einstellungen\xxx\Desktop\Test\+ kann nicht zugegriffen werden.

ok - dann mal langsam....

* wtf hat eigentlich mit dieser sinnigen Testmethode angefangen, Testdateien auf dem Desktop zu nehmen?

Anyway - wäre bei jedem Pfad/Dateinamen mit leerzeichen das gleiche. Kauf ich halt noch zwei " dazu....

"laufwerk:\pfad\datei name"

Gruß
Bitte warten ..
Mitglied: bastla
11.11.2010 um 10:17 Uhr
Hallo Razfaz!

Dann versuch es einmal mit der etwas behübschten Variante:
01.
@echo on & setlocal 
02.
set "Ein=laufwerk:\pfad\dateiname" 
03.
set "Aus=laufwerk:\pfad\dateiname2" 
04.
REM Die Zeilen auslesen und Variable für die Zeilennummer setzen 
05.
for /f "tokens=1 delims=:" %%a in ('findstr /n "^" "%Ein%"') do set kplt=%%a 
06.
 
07.
REM ziehe  7 ab 
08.
set /a sieben=%kplt%-7 
09.
REM zeig mir die letzten (zwerge) 
10.
(if %sieben% gtr 0 ( 
11.
    more +%sieben% "%Ein%" 
12.
) else ( 
13.
    type "%Ein%" 
14.
))>"%Aus%"
Grüße
bastla

P.S.: @T-Mo:
Kauf ich halt noch zwei " dazu....
... und verkauf noch ein Leerzeichen
Bitte warten ..
Mitglied: Razfaz
11.11.2010 um 10:21 Uhr

Ich habe das ganze mal dierekt auf C: verschoben.
Die FM kommt aber immer noch:

So siehts bei mir aus:

for /f "tokens=1 delims=:" %%a in ('findstr /n "." C:\Test\test.txt') do set kplt=%%a
set /a kplt=%kplt%-14
more + %kplt% C:\Test\test.txt>C:\Test\Test1\test1.txt

FM: C:\Test>more + 54 C:\Test\test.txt 1>C:\Test\Test1\test1.txt
Auf die Datei C:\Test\+ kann nicht zugegriffen werden.

Wo ist da der Fehler
Bitte warten ..
Mitglied: 60730
11.11.2010 um 10:24 Uhr
[OT]
@ Bastla: ein leerezeichen? meine kopfä issse leer wie Flasche Bier, wo denn?
07 REM ziehe 7 ab

Da bin ich aber froh, dass er nicht die letzten 123 Zeilen auslesen wollte, sowiel R.E.M kann ja keiner am Stück hören
[/OT]

Gruß
Bitte warten ..
Mitglied: Razfaz
11.11.2010 um 10:25 Uhr
@bastla:

Perfekt so hats geklappt, DANKE !!!!!
Bitte warten ..
Mitglied: bastla
11.11.2010 um 10:27 Uhr
@T-Mo
ein leerezeichen? meine kopfä issse leer wie Flasche Bier, wo denn?
Nach dem "+" (zumindest war's vorher noch da - deswegen auch "C:\Dokumente und Einstellungen\xxx\Desktop\Test\+") ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
11.11.2010 um 10:35 Uhr
Zitat von Razfaz:
@bastla:

Perfekt so hats geklappt, DANKE !!!!!

[OT]
@bastla - achso - ich brauch eh ne neue Tastatur, die olle kommt nicht mehr ganz mit meinen Fingern mit...
[/OT]


Salü,

dann bitte den Pistaziengrünen Haken dran zimmern.
Und wegen Blat das sollte ja jetzt kein Thema mehr sein, denn zu blat haben wir mehr Beitrage, als die Bäume auf den Ästen.

Gruß
Bitte warten ..
Mitglied: Razfaz
12.11.2010 um 08:11 Uhr
Jetzt habe ich doch noch eine Frage dazu.
Die txt Datei wird drei mal am Tag mit einem Text in der der Datei erweitert.
Das ist eien Log Datei von einem Programm, wo Informationen zur Versendeung von Paketen stehen.
Diese Datei wird dreimal am Tag erweitert. Leider nicht immer zu genauen Uhrzeiten.

Nun meine Frage:
Lässt sich das irgendwie realisieren,. das immer wenn die Datei erneuert wurde das obengenannte Script ausführt wird?
Es sollte also irgendwie eine Routine eingebaut werden, die prüft ob HEUTE (Datum) ein Text vorhanden ist.
Hier mal ein Auszug der Datei wie sie aussieht:

01.
FTP-Senden                               Version 7.38.3 vom 26.01.2010 - PP38  #2 
02.
                                         Mem Vrt:     469236  09.11.2010 19:10:41 0001    0.000     0.000 
03.
FTP-Connect 1                            Host: xxx.145.31.140, User: giese130, Timeout: 0 
04.
                                         Mem Vrt:     469236  09.11.2010 19:10:42 0002    0.703     0.703 
05.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101109T191018 Size (Bytes): 78280 
06.
                                         Mem Vrt:     469236  09.11.2010 19:10:42 0003    1.250     0.547 
07.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101109T191018 Size (Bytes): 78280 
08.
                                         Mem Vrt:     469236  09.11.2010 19:10:42 0004    1.265     0.015 
09.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101109T191018.sem Size (Bytes): 17 
10.
                                         Mem Vrt:     469236  09.11.2010 19:10:43 0005    1.609     0.344 
11.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101109T191018.sem Size (Bytes): 17 
12.
                                         Mem Vrt:     469236  09.11.2010 19:10:43 0006    1.609     0.000 
13.
FTP-Disconnect                           Mem Vrt:     469236  09.11.2010 19:10:43 0007    1.625     0.016 
14.
FTP-Senden                                
15.
 
16.
FTP-Senden                               Version 7.38.3 vom 26.01.2010 - PP38  #1 
17.
                                         Mem Vrt:     325604  10.11.2010 15:59:10 0001    0.000     0.000 
18.
FTP-Connect 1                            Host: xxx.145.31.140, User: giese130, Timeout: 0 
19.
                                         Mem Vrt:     325604  10.11.2010 15:59:11 0002    0.625     0.625 
20.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T155732 Size (Bytes): 357555 
21.
                                         Mem Vrt:     325604  10.11.2010 15:59:13 0003    2.469     1.844 
22.
FTP-Put Processed                        Remote: 195xxx145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T155732 Size (Bytes): 357555 
23.
                                         Mem Vrt:     325604  10.11.2010 15:59:13 0004    2.484     0.015 
24.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T155732.sem Size (Bytes): 17 
25.
                                         Mem Vrt:     325604  10.11.2010 15:59:13 0005    2.875     0.391 
26.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T155732.sem Size (Bytes): 17 
27.
                                         Mem Vrt:     325604  10.11.2010 15:59:13 0006    2.875     0.000 
28.
FTP-Disconnect                           Mem Vrt:     325604  10.11.2010 15:59:13 0007    2.875     0.000 
29.
FTP-Senden                                
30.
 
31.
FTP-Senden                               Version 7.38.3 vom 26.01.2010 - PP38  #2 
32.
                                         Mem Vrt:     382412  10.11.2010 16:57:13 0001    0.000     0.000 
33.
FTP-Connect 1                            Host: xxx.145.31.140, User: giese130, Timeout: 0 
34.
                                         Mem Vrt:     382412  10.11.2010 16:57:14 0002    0.500     0.500 
35.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T165658 Size (Bytes): 51486 
36.
                                         Mem Vrt:     382412  10.11.2010 16:57:14 0003    0.938     0.438 
37.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T165658 Size (Bytes): 51486 
38.
                                         Mem Vrt:     382412  10.11.2010 16:57:14 0004    0.938     0.000 
39.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T165658.sem Size (Bytes): 17 
40.
                                         Mem Vrt:     382412  10.11.2010 16:57:14 0005    1.313     0.375 
41.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T165658.sem Size (Bytes): 17 
42.
                                         Mem Vrt:     382412  10.11.2010 16:57:14 0006    1.313     0.000 
43.
FTP-Disconnect                           Mem Vrt:     382412  10.11.2010 16:57:14 0007    1.328     0.015 
44.
FTP-Senden                                
45.
 
46.
FTP-Senden                               Version 7.38.3 vom 26.01.2010 - PP38  #3 
47.
                                         Mem Vrt:     428492  10.11.2010 19:23:38 0001    0.000     0.000 
48.
FTP-Connect 1                            Host: xxx.145.31.140, User: giese130, Timeout: 0 
49.
                                         Mem Vrt:     428492  10.11.2010 19:23:38 0002    0.625     0.625 
50.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T192308 Size (Bytes): 91033 
51.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0003    1.219     0.594 
52.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T192308 Size (Bytes): 91033 
53.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0004    1.219     0.000 
54.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T192308.sem Size (Bytes): 17 
55.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0005    1.563     0.344 
56.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T192308.sem Size (Bytes): 17 
57.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0006    1.672     0.109 
58.
FTP-Disconnect                           Mem Vrt:     428492  10.11.2010 19:23:39 0007    1.672     0.000 
59.
FTP-Senden 
Wie man erkennen kann werden um ca. 16, 17 und 19 Uhr diese Dateien an DPD versendet.
Ich brauche also immer die letzte Information ausgeschnitten und in eine neue Datei eingefügt.
Also dies hier:
01.
 
02.
FTP-Senden                               Version 7.38.3 vom 26.01.2010 - PP38  #3 
03.
                                         Mem Vrt:     428492  10.11.2010 19:23:38 0001    0.000     0.000 
04.
FTP-Connect 1                            Host: xxx.145.31.140, User: giese130, Timeout: 0 
05.
                                         Mem Vrt:     428492  10.11.2010 19:23:38 0002    0.625     0.625 
06.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T192308 Size (Bytes): 91033 
07.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0003    1.219     0.594 
08.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T192308 Size (Bytes): 91033 
09.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0004    1.219     0.000 
10.
FTP-Put1                                 Local: ..\..\DPD\FFDatei\MPSEXPDATA_giese130_CUST_0130_D20101110T192308.sem Size (Bytes): 17 
11.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0005    1.563     0.344 
12.
FTP-Put Processed                        Remote: xxx.145.31.140  MPSEXPDATA_giese130_CUST_0130_D20101110T192308.sem Size (Bytes): 17 
13.
                                         Mem Vrt:     428492  10.11.2010 19:23:39 0006    1.672     0.109 
14.
FTP-Disconnect                           Mem Vrt:     428492  10.11.2010 19:23:39 0007    1.672     0.000 
15.
FTP-Senden 
Kann ich da was machen und wenn ja wie?
Danke für Eure tolle Hilfe...
Gruß
Marco
Bitte warten ..
Mitglied: Razfaz
12.11.2010 um 08:29 Uhr
Nachtrag: Würde das BatchFile dann über den geplanten Task alle 5min laufen lassen.
Bitte warten ..
Mitglied: 60730
12.11.2010 um 10:24 Uhr
Moin,

mach mal folgendes:

  • cmd öffnen
  • dir /? eingeben und eine Seite weiter blättern.

  • Du siehst den Schalter /T und seinen Parameter W

Ergo:

komplett neue Steuerbatch
01.
dir /TW Laufwerk:\pfad\logile.suffix>logfile.now 
02.
fc logfile.now logfile.old && goto end || call Batch.cmd 
03.
move  logfile.now logfile.old
Oder das baust du in die vorhandene ein und statt call batch.cmd halt goto Sprungziel und das move kommt in die vorletzte Zeile (wenn die letzte exit ist)

Gruß
Bitte warten ..
Ähnliche Inhalte
Debian
Letzte Zeile lesen und einfügen
gelöst Frage von Fenris14Debian4 Kommentare

Guten Tag, ich versuche mich mal wieder ein wenig an Scripten und habe hier jetzt das Problem das ich ...

VB for Applications
VbScript: ADODB.Stream: Neue Zeile einfügen
gelöst Frage von BirdyBVB for Applications2 Kommentare

Hallo zusammen, ich habe hier ein vb-skript, welches einen ADODB.Stream erzeugt und diesen mit Text füllt. Ich würde gerne ...

Batch & Shell
Zeile von einer Bat-Datei in eine andere kopieren
gelöst Frage von Nick.BBatch & Shell6 Kommentare

Ich wollte eine Zeile von einer Bat-Datei in eine andere schreiben, dies habe ich auch mit echo geschafft aber ...

Microsoft Office
Excel - letzte Zeile aus mehreren Sheets ein ein neues Sheet untereinander kopieren
Frage von ITNoobNewMicrosoft Office4 Kommentare

Hallo zusammen, ich versuche, mir ein Dashboard in Excel aus verschiedenen Excel-basierten Reports zusammenzustellen. Dabei ist für mich immer ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 6 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 8 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...