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

Falscher Ordner wir mit ausgegeben

Frage Entwicklung Batch & Shell

Mitglied: Dell-XPS

Dell-XPS (Level 1) - Jetzt verbinden

24.08.2011 um 00:12 Uhr, 2498 Aufrufe, 8 Kommentare

Hey Leute

Und zwar hab ich folgendes Problem. Ich lese einige Ordnerinhalte ein. Dabei sieht die Struktur so aus:

Ein Überordner -> in dem Ordner sind wiederrum Ordner (heißen wie folgt: 987ST, 721MN, 212ht und 121en) -> in den Ordner sind einige Sprach-Ordner (heißen wie folgt: de, en, es, fr) und in diesen Ordnern sind Dokumente, Bilder etc.

Nun zu meinem Anliegen:

Ich lese die Ordner ein, mit einer FOR Schleife und einem findstr der zuvor ausgewählten Sprache. Wenn ich jetzt aber die Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!

Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts geholfen!

Mit freundlichen Grüßen
Mitglied: StefanKittel
24.08.2011 um 00:34 Uhr
Zitat von Dell-XPS:
Und zwar hab ich folgendes Problem. Ich lese einige Ordnerinhalte ein.
Und wie? VB, Batch, etc?
Und woher? Klingt nach einer Liste. Warum durchsuchst Du die Ordner nicht recursiv? Dann weißt Du gleich wo was hinkommt.

Ich lese die Ordner ein, mit einer FOR Schleife und einem findstr der zuvor ausgewählten Sprache. Wenn ich jetzt aber die
Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad
nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!
Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts
geholfen!
Stell doch Deinem Suchstring ein Backslash an den Anfang und ans Ende.
Such also nach "\121\".

Stefan.
Bitte warten ..
Mitglied: Biber
24.08.2011 um 00:44 Uhr
Moin Dell-XPS,

es gibt wie im richtigen Leben mehrere Möglichkeiten, diese Prüfung einzubauen.

Du kannst sowohl findstr nutzen und
  • den Suchstring ("en","fr", "de" oder "es") ändern in "^en$","^fr$", "^de$" oder "^es$" und den Unterordnernamen prüfen
  • oder den String "vollständigerPfad" durchsuchen nach "\en" , "\de" etc --- denn der Pfad lautet ja z.B. "...\test\121en" oder aber "...\test\721mn\en" -> "\en" ist nur im 2.Fall gegeben
  • oder aber du prüfst auf Gleichheit mit einer IF-Prüfung
Proof-of-concept in deinem Überordner vom CMD-Prompt aus
for /r /d %i in (*) do @if "%~ni"=="en" echo hier bei [%i] ist ein Unterordner=en
Grüße
Biber
Bitte warten ..
Mitglied: bastla
24.08.2011 um 00:46 Uhr
... oder einfach
dir /s /b /ad "D:\Überordner\en"
[OT] @skye: Machst Du dafür auch einen Counter? [/OT]

Grüße
bastla
Bitte warten ..
Mitglied: 99045
24.08.2011 um 01:03 Uhr
Moin, Dell-XPS und willkommen im Forum.

Versuch's doch mal so:

dir {LW:\Anfangspfad] /b /s | findstr /C:\en\

An Stelle von \en\ dann bei Bedarf die andere gewünschte Sprache einsetzen.

Gruß
Bitte warten ..
Mitglied: Skyemugen
24.08.2011 um 07:49 Uhr
Zitat von bastla:
[OT] @skye: Machst Du dafür auch einen Counter? [/OT]

[OT]Aloha bastla,

Hmm... bring mich nicht auf dumme Gedanken hm, dirsubfolder(?) set "dsf+=1"

Aber mittendrin anfangen zu zählen ... call set zu finden ist einfacher *gg* und jedes Mal danach zu schauen ... anstrengend zähl ich jetzt das einmalige Vorkommen pro Thread oder in jedem Code pro Kommentar ... *grübel*

greetz André[/OT]
Bitte warten ..
Mitglied: Dell-XPS
24.08.2011 um 11:00 Uhr
hey leute,
danke für eure Tipps, habs mit dennen mal versucht, aba war nicht so das richtige oder ich habs falsch verstanden

ich habs inzwischen selber rausgefunden!

und zwar ich füg ich bei findstr zur Sprache einfach folgendes hinzu:
zurerst kommt ja die for Schleife dann das "dir" zur Auflistung und zu guter letzt findstr. findstr, sieht so aus: |findstr /i /e "\%SPRACHE%". Durch den Backslash sicht er nur nach der Sprach, also z.B. \en . So kann nur der Ordner "en" ausgewählt werden und nicht der andere "121en".

Trotzdem danke an alle die sich gedanken gemacht haben!
Gruß Sandy
Bitte warten ..
Mitglied: bastla
24.08.2011 um 11:08 Uhr
Hallo Dell-XPS!

Und Du hattest tatsächlich mit
for /f "delims=" %%i in ('dir /s /b /ad "D:\Überordner\%SPRACHE%"') do ...
- unter der Annahme, dass %SPRACHE% zB "en" (natürlich ohne Anführungszeichen) enthält - keinen Erfolg?

Grüße
bastla

P.S.:
ich habs inzwischen selber rausgefunden!
... dass Bibers zweiter Vorschlag - wie auch jeder seiner weiteren Ansätze - für Dich passt?
Bitte warten ..
Mitglied: Dell-XPS
25.08.2011 um 07:40 Uhr
hey,
ne damit hat ich keinen Erfolg!

ach stimmt jetzt hab ich den Vorlschlag von Biber verstanden. Ich hab ihn mir paar mal durchgelesen und dann bin ich auch selber darauf gekommen mit Backslash abzufragen.

Aber dann halt ein extra großes Dankeschön an Biber.
Gruß Sandy
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange und Dateisystem - Ordner extern archivieren und zusammenführen (10)

Frage von FA-jka zum Thema Exchange Server ...

Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Windows Tools
Ordner Verteilen (12)

Frage von Cloudy zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...