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

Per Batch Anzahl der Zeilen bestimmen und überflüssige in Datei löschen

Frage Entwicklung HTML

Mitglied: knechtibus

knechtibus (Level 1) - Jetzt verbinden

31.07.2009, aktualisiert 09:30 Uhr, 7706 Aufrufe, 6 Kommentare

Hallo miteinander,

es liegen 2 Dateien dat1.txt und dat2.txt vor, die miteinander verglichen werden sollen. Der Verglich geht folgendermaßen von statten:

01.
@echo off & setlocal  
02.
if exist dat3.txt del dat3.txt  
03.
findstr /v /G:dat2.txt dat1.txt >>dat3.txt
Probleme gibt es nun wenn die Anzahl der Zeilen in dat1.txt und dat2.txt unterschiedlich ist. Wollte nun fragen wie man die Anzahl der Zeilen in dat1.txt bestimmen kann und die letzten Zeilen in dat2.txt löscht die über diese Anzahl hinaus gehen. Wenn also in dat1.txt 15 Zeilen stehen und in dat2.txt 20, sollen die letzten 5 Zeilen von dat2.txt gelöscht werden.
Freu mich auf eure Antworten.

MfG
knechtibus
Mitglied: bastla
31.07.2009 um 10:05 Uhr
Hallo knechtibus!

Etwa so:
01.
@echo off & setlocal 
02.
set "D1=D:\dat1.txt" 
03.
set "D2=D:\dat2.txt" 
04.
set "D3=D:\dat3.txt" 
05.
set "DTemp=%temp%\dat2temp.txt" 
06.
 
07.
if exist "%DTemp%" del "%DTemp%" 
08.
for /f "delims=:" %%i in ('findstr /n "^" "%D1%"') do set Anzahl=%%i 
09.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%D2%"') do if %%i leq %Anzahl% >>"%DTemp%" echo\%%j 
10.
findstr /v /G:"%DTemp%" "%D1%">"%D3%" 
11.
del "%DTemp%"
Grüße
bastla
Bitte warten ..
Mitglied: knechtibus
31.07.2009 um 10:21 Uhr
Hallo bastla,

was hatte ich denn auch anderes erwartet wenn du eine Batch schreibst funktioniert zu 100% genau so wie ich mir es vorgestellt/gewünscht habe.
Vielen Dank für die perfekte Hilfe.

MfG
ehrfürchtiger knechtibus
Bitte warten ..
Mitglied: bastla
31.07.2009 um 10:32 Uhr
Hallo knechtibus!
funktioniert zu 100% genau so wie ich mir es vorgestellt/gewünscht habe.
Freut mich ...

... wobei: Die Chance, dass es wirklich klappt, ist wesentlich größer, wenn ich zur Abwechslung einmal die richtige Anzahl von Prozentzeichen im Batch unterbringe ...

Grüße
bastla
Bitte warten ..
Mitglied: knechtibus
31.07.2009 um 10:46 Uhr
Hallo bastla,

ach naja, wie man sieht das passiert den Besten. Hab noch kurz eine andere Frage. In dem von dir erwähnten Batch wollte ich die sleep.exe zum zyklischen Ausführen benutzen. Die muss ich doch dann einfach nur in das Verzeichnis kopieren von dem aus die Batch-Datei ausgeführt wird, oder?
Es kommt leider immer die Fehlermeldung: "Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden". Habs auch mal mit der wait.exe versucht, leider genau das gleiche.

MfG
knechtibus
Bitte warten ..
Mitglied: bastla
31.07.2009 um 10:53 Uhr
Hallo knechtibus!

Damit Du eine dieser Dateien "überall" verwenden kannst, musst Du sie in eines der in %PATH% enthaltenen Verzeichnisse legen, also üblicher Weise in "%WINDIR%" (ist in %PATH% aufgelöst zB in "C:\Windows") oder "%WINDIR%\System32".

Alternativ kannst Du natürlich den vollständigen Pfad zur jeweilgen ".exe"-Datei angeben, also zB "C:\Utils\sleep.exe".

Grüße
bastla
Bitte warten ..
Mitglied: knechtibus
31.07.2009 um 10:59 Uhr
Hallo bastla,

wunderbar, jetzt funktioniert das auch. Danke für die schnelle, adäquate Hilfe.

MfG
knechtibus
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Video & Streaming
Kamera mit 24-7 auf Website hat Aussetzer (6)

Frage von Calvus zum Thema Video & Streaming ...