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

Txt-Datei nach bestimmten Wert durchsuchen, wenn positiv, alles davorhängende löschen

Frage Entwicklung Batch & Shell

Mitglied: schulle2

schulle2 (Level 1) - Jetzt verbinden

22.03.2007, aktualisiert 26.03.2007, 5460 Aufrufe, 8 Kommentare

Hallo zusammen,


ich bin grade auf der Suche nach einem Lösungsansatz, wie ich am besten ein kleines Problem von mir löse.
Ich hoff mir kann da jmd helfen:

Ich habe eine Log File log.txt a la:


12.05.2006

sfalhsdjfhasldncvdbcvljkcbnv1

13.05.2006

sfalhsdjfhasldncvdbcvljkcbnv2

15.05.2006

sfalhsdjfhasldncvdbcvljkcbnv3

16.05.2006

sfalhsdjfhasldncvdbcvljkcbnv4

17.05.2006

sfalhsdjfhasldncvdbcvljkcbnv4

Nun will ich per Batch oder VBS die File nach einem Datum (älter 2 Tage) durchsuchen.

Sprich am 17.05 führe ich das Script aus.
Das durchsucht die log, ob es einträge älter 15.05 gibt und löscht gegebenfalls diese.

Hat jmd eine Idee wie man das am betsen realisieren könnte?
Wäre für jede Hilfe sehr dankbar!
Mitglied: miniversum
22.03.2007 um 19:35 Uhr
So gehts:
01.
@echo off 
02.
set string="15.05." 
03.
set "infile=datei.txt" 
04.
 
05.
FOR /F "delims=[]" %%i in ('find /n /i %string% %infile%') do set nummer=%%i 
06.
set /a nummer=%nummer%-1 
07.
more +%nummer% %infile%>tempfile.txt 
08.
del %infile% 
09.
ren tempfile.txt %infile%
miniversum
Bitte warten ..
Mitglied: schulle2
23.03.2007 um 08:43 Uhr
Super!
Vielen vielen Dank!
genau so geht es!
Bitte warten ..
Mitglied: schulle2
23.03.2007 um 10:54 Uhr
kurze frage noch....
wenn das datum nicht vohanden ist, leert er das komplette dokument.
gibts da noch irgendwie n weg, wie ich das umgehen kann?
Bitte warten ..
Mitglied: miniversum
23.03.2007 um 11:37 Uhr
Hier hab ich diesen Fehler abgefangen (unggetestet):
01.
@echo off 
02.
set string="15.05." 
03.
set "infile=datei.txt" 
04.
 
05.
FOR /F "delims=[]" %%i in ('find /n /i %string% %infile%') do set nummer=%%i 
06.
if "%nummer:~0,5%" equ "-----" ( 
07.
echo %string% nicht in "%infile%" vorhanden 
08.
pause 
09.
) else ( 
10.
set /a nummer=%nummer%-1 
11.
more +%nummer% %infile%>tempfile.txt 
12.
del %infile% 
13.
ren tempfile.txt %infile% 
14.
)
miniversum
Bitte warten ..
Mitglied: Biber
23.03.2007 um 11:48 Uhr
Moin,

nur kleine Korrektur eines Flüchtigkeitsfehlers:
Ändere: if "%nummer:0,5%"="-----"
in: if "%nummer:0,5%"=="-----"

"IF"-Prüfung auf Gleichheit im CMD-Interpreter mit doppeltem Gleichheitszeichen,
Zuweisung eines Wertes mit SET und einfachem Gleichheitszeichen.

[Ansonsten denke ich, der Beitrag kann auf "Gelöst" gesetzt werden?]

Grüsse
Biber
Bitte warten ..
Mitglied: schulle2
26.03.2007 um 13:44 Uhr
dank euch!


ich habe das script nun noch ein wenig erweitert.
In meinen Logfiles wird das Datum nach dem Schema gespeichert:

20-MÄR-2007

Alles schön und gut. Es läuft, ... Nur nicht beim Monat März wegen dem Sonderzeichen "Ä".
Ich habs schon mit zigg verschiedenen Möglichkeiten probiert, jedoch nichts gescheites gefunden.
Könntet ihr mir vielleicht da bitte nochmal helfen? ;)


@ECHO OFF
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%


if %monat%==01 set monat=Nov
if %monat%==02 set monat=Dez
if %monat%==03 set monat=Jan
if %monat%==04 set monat=Feb
if %monat%==05 set monat=Mär
if %monat%==06 set monat=Apr
if %monat%==07 set monat=Mai
if %monat%==08 set monat=Jun
if %monat%==09 set monat=Jul
if %monat%==10 set monat=Aug
if %monat%==11 set monat=Sep
if %monat%==12 set monat=Okt

echo %tag%.%monat%.%jahr%


set suchstring=%tag%.%monat%.%jahr%
set "infile=listener_all.LOG"

FOR /F "delims=[]" %%i in ('find /n /i %suchstring% %infile%') do set zeile=%%i
if "%zeile:~0,5%" == "-----" (
echo %suchstring% nicht in "%infile%" vorhanden

) else (
set /a zeile=%zeile%-1
more +%zeile% %infile%>tempfile.txt
del %infile%
ren tempfile.txt %infile%
)
Bitte warten ..
Mitglied: Biber
26.03.2007 um 13:53 Uhr
Moin schulle2,

dazu musst Du unter Windows-GUI-Krams (z.B. Explorer) und dem Batch die gleichen Codepages sicherstellen.

"Windows" verwendet hier (wo datt Forum steht) die Codepage 1252; die CMD.exe verwendet meistens die Codepage 850 oder 437.

Überprüfen am Cmd-Prompt mit dem Befehl CHCP (==Change Codepage).

Einstellen einer anderen Codepage am Prompt/im Batch mit "CHCP 1252" oder CHCP "850" BEVOR irgendetwas mit Umlauten gelesen oder in Dateien geschrieben wird.

Unter "Umlaut CHCP Batch" sollte hier im Forum etwas darüber zu finden sein.

Gruss Biber
Bitte warten ..
Mitglied: schulle2
26.03.2007 um 14:03 Uhr
danke für deine antwort.


es geht ;)
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Wert in einer TXT Datei suchen (11)

Frage von nolle99 zum Thema Batch & Shell ...

Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
gelöst In Batchdatei Variablen befüllen - mit Werten aus einer TXT-Datei (6)

Frage von donnyS73lb zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...