Top-Themen

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

2 Textdateien vergleichen, mit dem Ergebnis Ordner löschen

Frage Entwicklung Batch & Shell

Mitglied: Tommylik

Tommylik (Level 1) - Jetzt verbinden

14.04.2011 um 07:00 Uhr, 4257 Aufrufe, 11 Kommentare

Hallo an alle,

Habe folgende Situation:

01.
@echo on rem ff & setlocal 
02.
cls 
03.
Set Quelle=D:\Internet_Seiten\Batch 
04.
if exist %Quelle%\verzeichniss.txt goto loeschen 
05.
:loeschen 
06.
del %Quelle%\verzeichniss.txt 
07.
for /F "delims=" %%d in ('dir D:\ /a:d /b /o:n') do echo D:\%%d >> %Quelle%\verzeichniss.txt
Hiermit erstelle ich mir meine Datei mit allen Ordnernamen auf Laufwerk D.


und hiermit möchte ich nun die beiden Textdateien vergleichen.
In der Textdatei "Ord_loeschen.txt" habe ich Namen von Ordner eingetragen die gelöscht werden können.
01.
for /f "delims=" %%i in (%Quelle%\verzeichniss.txt) do @Findstr /i /v /C:"%%i" %Quelle%\Ord_loeschen.txt >nul || echo %%i
Das echo am Ende wollte ich dann gegen "rd" austauschen falls das Ergebnis richtig wäre. Ist es aber nicht.

Die Verzeichnisliste wird erstellt und dann passiert weiter garnichts.

Ich habe mir zur TESTZWECKEN einen Ordner auf LW D: angelegt, mit den Namen "MAN", der in beiden Dateien vorkommt.
Die restlichen Namen der Ordner sind unterschiedlich.
Der Code sollte mir nun in diesem Fall den Ordner "MAN" nach dem vergleich löschen.
Sind mehrere Ordner identisch sollen die natürlich auch gelöscht werden.

Vielen Dank im vorraus.

Mfg Tom
Mitglied: Tommylik
14.04.2011 um 07:07 Uhr
Hallo an alle,

Nachtrag:

Hiermit erstelle ich mir meine Datei mit allen Ordnernamen auf Laufwerk D.
Muß ich das überhaupt?
Oder kann man das nicht in eine Variable schreiben? Und den vergleich dann mit der Variable machen.
Das wäre besser und ich könnte mir eine Datei ersparen.

Mfg Tom
Bitte warten ..
Mitglied: Skyemugen
14.04.2011 um 07:42 Uhr
Aloha,

(nur kurz vorbeischauen kann), dein Schalter /v verwirrt mich in deinem findstr ... dachte du suchst etwas, was enthalten ist und nicht was nicht enhalten ist. =)

greetz André
Bitte warten ..
Mitglied: Tommylik
14.04.2011 um 08:00 Uhr
Hallo André

Vielen Dank für deine Antwort.

Ups ja der Schalter ist falsch aber es ändert sich trotzdem nichts.
Die Verzeichnisliste wird erstellt und weiter passiert nichts.

Das ist ja mein Problem, dadurch weiß ich nicht was falsch ist.

Mfg Tom
Bitte warten ..
Mitglied: bastla
14.04.2011 um 08:06 Uhr
Hallo Tommylik!

Auch von mir nur ein kurzer Hinweis: Es ist sinnvoll, eine Datei mit den Ordnernamen zu erstellen, da Du dann einen Vergleich mit "findstr /i /g:Datei1 Datei2" durchführen kannst ...

Grüße
bastla
Bitte warten ..
Mitglied: Tommylik
14.04.2011 um 08:12 Uhr
Hallo

Ok habe den Fehler gefunden.

01.
for /f %%i in (%Quelle%\verzeichniss.txt) do @Findstr /i /C:"%%i" %Quelle%\Ord_loeschen.txt >nul || echo %%i
Das "delims=" war zu viel.

Dann wurde mir der besagte Ordner "MAN" angezeigt.

Ich habe dann das echo gegen rd getauscht und siehe da, der Code hat mir dann auch den Ordner gelöscht.

01.
for /f %%i in (%Quelle%\verzeichniss.txt) do @Findstr /i /C:"%%i" %Quelle%\Ord_loeschen.txt >nul || rd %%i
Somit ist ein Teil erledigt und bleibt nur noch:
01.
@echo off & setlocal 
02.
cls 
03.
Set Quelle=D:\Internet_Seiten\Batch 
04.
if exist %Quelle%\verzeichnisse.txt goto loeschen 
05.
:loeschen 
06.
del %Quelle%\verzeichnisse.txt 
07.
for /F "delims=" %%d in ('dir D:\ /a:d /b /o:n') do echo D:\%%d >> %Quelle%\verzeichnisse.txt
Hiermit erstelle ich mir meine Datei mit allen Ordnernamen auf Laufwerk D.

Nachtrag:

Muß ich das überhaupt?
Oder kann man das nicht in eine Variable schreiben? Und den vergleich dann mit der Variable machen.
Das wäre besser und ich könnte mir eine Datei ersparen.

Vielen Dank noch mal

Mfg Tom
Bitte warten ..
Mitglied: Tommylik
14.04.2011 um 09:35 Uhr
Hallo an alle,

Ich denke ich habe einen Lösungsansatz gefunden aber komme nicht weiter.
Könnte mir einer von Euch helfen.

Mit dem ersten Code-Schnipsel werden alle Ordner eingelesen.
01.
for /f "tokens=1* delims=" %%a in ('dir D:\ /a:d /b /o:n') do set Ordner=%%a
Aber der 2. Code-Schnippsel funktioniert nicht so wie erwünscht.
Er nimmt nur den letzten Ordner der aufgelistet wird.
Er soll aber jeden Ordner mit der Ord_loeschen.txt vergleichen.
01.
for /f %%i in (D:\%Ordner%) do @Findstr /i /C:"%%i" %Quelle%\Ord_loeschen.txt >nul && echo %%i
Das "echo" am ende ist erstmal zu Testzwecke.

Vielen Dank im voraus.

Mfg Tom
Bitte warten ..
Mitglied: Skyemugen
14.04.2011 um 10:25 Uhr
Aloha,

naja normal kann eine Variable nunmal nur einen Wert enthalten, für Mehrfachbearbeitung käme doch z.B. ein
01.
for /f "tokens=1* delims=" %%a in ('dir D:\ /a:d /b /o:n') do call :Ablauf "%%a" 
02.
:Ablauf 
03.
for /f %%i in (D:\"%~1") do @Findstr /i /C:"%%i" %Quelle%\Ord_loeschen.txt >nul && echo %%i 
04.
goto :eof
(ungetestet) in Frage.

greetz André
Bitte warten ..
Mitglied: Tommylik
14.04.2011 um 10:51 Uhr
Hallo André

Vielen Dank erstmal für deine Hilfe.

So funktioniert es. Ich mußte die Anführungszeichen in der 2. for Schleife nur ändern.
Aber es gibt ein Phänomen. Wenn man den Code ausführt, kehrt der Prompt nicht wieder zurück.
Der Cursor blinkt einfach links oben in der Ecke. Keine Ahnung warum hast du eine Idee?

01.
@echo off & setlocal  
02.
cls 
03.
Set Quelle=D:\Internet_Seiten\Batch 
04.
 
05.
for /f "tokens=1* delims=" %%a in ('dir D:\ /a:d /b /o:n') do call :Ablauf "%%a"  
06.
 
07.
:Ablauf  
08.
for /f %%i in ("D:\%~1") do @Findstr /i /C:"%%i" %Quelle%\Ord_loeschen.txt >nul && rd %%i  
09.
goto :eof
Nochmals vielen Dank.

Mfg Tom
Bitte warten ..
Mitglied: Skyemugen
14.04.2011 um 11:22 Uhr
Aloha,

naja da fehlt ja noch ein Abschluss direkt nach der Hauptschleife (à la goto :eof you know?), könnte daran liegen.

greetz André
Bitte warten ..
Mitglied: Tommylik
14.04.2011 um 12:21 Uhr
Hallo André,

Wunderbare Arbeit, funktioniert einwandfrei.

Da hätte ich auch selber darauf kommen können.

Nun ja, dafür bist auch der Profi.

Nochmals vielen vielen Dank.

Mfg Tom
Bitte warten ..
Mitglied: Skyemugen
14.04.2011 um 13:14 Uhr
Aloha

Zitat von Tommylik:
Nun ja, dafür bist auch der Profi.

[OT]
... bei Weitem noch lange nicht *g* die fünf Monate mit denen ich was mit batch zu tun habe, machen mich vllt. zum erweiterten Einsteiger ;D (oder doch schon einen runaway, haha) aber learning by doing und genau solche Threadanfragen hier im Forum bringen mich voran

Ich freue mich immer, wenn etwas funktioniert und man jemandem helfen konnte ^_^

daher, bitte, gern geschehen und have a nice (wenn auch ohne Sonne ...) day ;)

greetz André
[/OT]
Bitte warten ..
Ähnliche Inhalte
Ubuntu
Wie kann man 2 Textdateien vergleichen (OHNE SORTIERUNG!) und die gleiche Zeilen in einer Datei lassen und den Rest löschen?
gelöst Frage von takitanoUbuntu11 Kommentare

Ich habe 2 Textdateien mit deutschen Wörtern. Erste Datei ist nach Häufigket von Wörtern sortiert (frequency list) und zweite ...

Batch & Shell
Textdateien vergleichen BATCH
gelöst Frage von FeudelFredBatch & Shell2 Kommentare

Moin Moin, ich bin komplett neu im Forum und habe auch keine sonderlich großen Erfahrungen mit Foren. Habe eine ...

Batch & Shell
Zahlen aus Textdatei in Batch vergleichen
gelöst Frage von yspke24Batch & Shell7 Kommentare

Hi, ich habe schon stundenlang im Internet gesucht, konnte aber nichts Passendes finden. Ich habe eine Textdatei "time.log". In ...

Ubuntu
Vor - und Nachnahmen aus einer Textdatei löschen, die in anderen Textdateien vorhanden sind
gelöst Frage von takitanoUbuntu4 Kommentare

Hallo, ich habe folgendes Problem: ich habe eine Textdatei mit mehr als 30.000.000.000 Zeilen. In eingigen von diesen Zeilen ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 56 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...