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, 7699 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.

Mit freundlichen Grüßen
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.

Mit freundlichen Grüßen
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.

Mit freundlichen Grüßen
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.

Mit freundlichen Grüßen
knechtibus
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Powershell - Zeilen in einer csv löschen bis (7)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

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 ...