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 Verzeichnisse auslesen und vergleichen

Mitglied: HansMeier4

HansMeier4 (Level 1) - Jetzt verbinden

09.10.2012, aktualisiert 10.10.2012, 3061 Aufrufe, 5 Kommentare

Hallo Zusammen,
Ich arbeite an einer Batch mit der ich Unterverzeichnisse auslesen und auf mögliche Doppelungen vergleichen will.
Die möglichen Doppelungen sollen einfach als Echo ausgegeben werden.

Ich bin Batch-Neuling, aber doch recht begeistert von den Möglichkeiten die einem da geboten werden. Die einfachen Copy und Move Befehle bekomme ich schon recht gut hin, aber sobald es um Schleifen geht, beginne ich zu schwanken. Mein aktuelles Problem habe ich bereits im Vorwort erläutert. Ich wäre froh, wenn mir da einer auf die Sprünge helfen könnte.

Die Verzeichnisstruktur sieht folgendermaßen aus:
A
B
Bauer
Bauer Klaus
Beier
Behrens
C
D
.
.
.

Ziel ist es die Ordner A-Z zu öffnen und die darin liegenden Verzeichnisse nach beispielsweise den ersten 3 Buchstaben zu prüfen.
Im obrigen Beispiel wäre die Ausgabe dann:
Mögliche Doppelung:
Bauer - Bauer Klaus
Mein erster Ansatz war es das Ganze über 'dir' aufzusetzen. Leider bekomme ich das mit dem 'exclude' nicht wirklich hin. Der Dir-Befehl scheint ja keine Ausklammerungen zu erlauben.
Ab Zeile 21 bin ich irgendiwe ratlos.


01.
:BESTANDSKONTROLLE 
02.
set anfangsbuchstabe=A 
03.
set exclude=0 
04.
set zielverz=test 
05.
 
06.
:start 
07.
cd\ 
08.
d: 
09.
cd %zielverz%\%anfangsbuchstabe% 
10.
For /F %%i in ('dir /B /O:-N * ^2^>nul') do set erste=%%i 
11.
GOTO STARTZWEI 
12.
 
13.
:STARTZWEI 
14.
set suchstrg=%erste:~0,3% 
15.
For /F %%i in ('dir /B /O:N %suchstrg%* ^2^>nul') do set zweite=%%i 
16.
if x%zweite%==x GOTO FEHLER 
17.
if %zweite%==%erste% GOTO VGLFORTSETZEN 
18.
echo %erste% --- %zweite% 
19.
goto VGLFORTSETZEN 
20.
 
21.
:VGLFORTSETZEN 
22.
set exclude=%erste% 
23.
dir /b /O:-N "%~1" | findstr /v /i "\<%exclude%\>" do set erste  
24.
if "%~1" neq "" goto VGLFORTSETZEN
Ich würde mich über etwas Hilfe freuen.

Beste Grüße
Der Hans
Mitglied: 60730
10.10.2012, aktualisiert um 10:09 Uhr
moin,

Ab Zeile 21 bin ich irgendiwe ratlos.
Du glücklicher, bei mir ist schon bei Zeile 10 ein Rad los, bzw. mir fehlt was zwischen 11 und zwölf

sollte das nicht igendwie so aussehen?

do (
set erste=%%i
call :STARTZWEI
)
goto shell

anyway...

Mein aktuelles Problem habe ich bereits im Vorwort erläutert.

Nicht wirklich, du hast ne struktur, da steht irgendwo müller drin und willst alles abefrühstücken, ob da nochmal müller oder müh drin ist?
Bitte warten ..
Mitglied: HansMeier4
10.10.2012, aktualisiert 11.10.2012
Hallo,

Deine Vermutung ist vollkommen richtig.
Ich möchte aus müller das mül auslesen und schauen ob es noch ein Wort mit diesen Anfangsbuchstaben gibt.

Leider sind mir im Code noch einige Nachlässigkeitsfehler unterlaufen.
Sory für die Sauerei.
- in zeile 15 müßte es 'suchstrg' heißen
- in zeile 17 fehlt ein % hinter 'zweite'


Aber meine Intention war es einmal mit dem dir-befehl von unten nach oben durchzugehen und das erste Verzeichnis %erste% abzuholen.
Dann von oben nach unten mit dem Filter %suchstrg% durchzuwandern und schauen was ich finde. --> %zweite%
Wenn %erste% und %zweite% gleich sind, will ich zum nächsten Verzeichnis :vglfortsetzen
Wenn %erste% und %zweite% nicht gleich sind, haben sie dennoch die selben Anfangsbuchstaben --> echo %erste% und %zweite% --> dann :vglfortsetzen

Und genau da liegt grade mein Problem.
Ich weiß noch nicht, wie ich mit dieser Vorgehensweise einmal erkannte Verzeichnisse aus der Suche ausschließen kann.

Besten Dank für Dein Bemühen
Bitte warten ..
Mitglied: pieh-ejdsch
10.10.2012, aktualisiert um 23:21 Uhr
moin HansMeier4,

bei dir hat /b vorrang vor /w - also ist /w nutzlos.

Eine Anleitung für For ist hier auch zu finden, genauso wie eine Anleitung für Variablen.

Die For-Schleife mit der Option /d gibt Dir die Verzeichnisse auch sortiert aus.
Pack die Laufvariable in eine neueVariable.
Prüfe mit der altenVaraible(erste3) gegen neueVariable(erste3) - wenn gleich dann Ausgabe der Laufvariable.
Setze die Laufvariable in eine alteVariable.

Mit find(str) müsstest Du auch die ersten drei auflösen - da ist ein direkter Vergleich aber schneller.

Gruß Phil
Bitte warten ..
Mitglied: HansMeier4
11.10.2012 um 22:58 Uhr
Hallo Phil,

Danke für den Tip mit der Schleife.
Ich werde mich da mal reinhängen und schauen was sich machen läßt.
Ich meld mich dann wieder.

Beste Grüße
Der Hans
Bitte warten ..
Mitglied: HansMeier4
19.10.2012 um 23:36 Uhr
Servus,

Danke für die Hinweise.
Ich hab's doch hinbekommen.
Anbei der Codeschnipsel:

01.
:AUSLESEN 
02.
for /d %%i IN ("*") DO ( 
03.
set /a count=!count!+1 
04.
set name!count!=%%i 
05.
06.
 
07.
:VORBEREIT 
08.
set /a zaehler=%count% 
09.
set /a count=0 
10.
 
11.
:AUSWERT 
12.
set verz1=!name%zaehler%! 
13.
set /a zaehler=%zaehler%-1 
14.
IF %zaehler%==0 GOTO ENDE 
15.
set verz2=!name%zaehler%! 
16.
IF %verz1:~0,3%==%verz2:~0,3% echo Achtung: Vermutete Doppelung: %verz1% -- %verz2% 
17.
GOTO AUSWERT
Ich werd jetzt nur noch eine Schleife für Unterverzeichnisse einbauen.

So far....
Der Hans
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell Verzeichnisse vergleichen mit Zwischenschritt

gelöst Frage von H41mSh1C0RBatch & Shell22 Kommentare

Hi@All, Ablauf: 1. Verzeichnis A (root: c:\temp\dir1) einlesen (pfad ab root, name, länge, letzte mal geschrieben) > Ergebnis in ...

Batch & Shell

Powershell: Wert aus Registry auslesen und mit vorhandenem Wert vergleichen

gelöst Frage von BrowserlauserBatch & Shell5 Kommentare

Hallo, ich stehe vor folgendem Problem: Ich möchte per Powershell aus der Registry einen bestimmten Wert auslesen. Beispiel: in ...

PHP

PHP - LDAP l Usergruppen auslesen, vergleichen, zulassen

Frage von ThoomaasPHP4 Kommentare

Hallo alle zusammen! :-) Ich habe mal wieder ein Problem mit meinem PHP Script Vielleicht kann mir wer helfen. ...

Batch & Shell

AD-Benutzer per Shell auslesen und vergleichen

gelöst Frage von ReneBueBatch & Shell8 Kommentare

Hallo, ich habe von meinem Chef eine Aufgabe bekommen die mich als Powershell anfänger zum verzweifeln bringt. Ich soll ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...