Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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, 7722 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
Batch & Shell
Batch bestimme Zeile einer vorherigen batch einfügen (9)

Frage von Frensche zum Thema Batch & Shell ...

Batch & Shell
Zeile eine Datei per batch ersetzen (2)

Frage von duckknight zum Thema Batch & Shell ...

Batch & Shell
gelöst Anzahl Dateien in allen Unterordnern prüfen und bis auf die jüngsten löschen (4)

Frage von Zunaras zum Thema Batch & Shell ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (14)

Frage von Spitzbube zum Thema Netzwerke ...

Ausbildung
Sinnvolles Einstiegsgehalt für FiSi nach der Ausbildung (12)

Frage von nutzername1 zum Thema Ausbildung ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...