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

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, 4569 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Bash Script soll neue Datei erzeugen (2)

Frage von SpeakerST zum Thema Batch & Shell ...

VB for Applications
gelöst Mit VBA im Monatskalender Datum suchen - aus anderer Datei einfügen (6)

Frage von Otto1699 zum Thema VB for Applications ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...