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

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, 2519 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!

MfG
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 ..
Ähnliche Inhalte
Apache Server
gelöst Rewrite mit falschem Ordner (1)

Frage von rawb1t zum Thema Apache Server ...

Windows Server
gelöst SBS2011 Selbst ausgegebenes Zertifikat wird erneuert dauert lange (10)

Frage von Freizeitmanager zum Thema Windows Server ...

Ubuntu
gelöst Ubuntu: Audio wird stark verlangsamt ausgegeben (2)

Frage von ralfkausk zum Thema Ubuntu ...

Voice over IP
gelöst VoIP - Was kann man alles falsch machen? (20)

Frage von MegaGiga zum Thema Voice over IP ...

Neue Wissensbeiträge
Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(25)

Information von SeaStorm zum Thema Utilities ...

Windows Server

Exchange Server 2016 Probleme auf Server 2016 mit iOS 11 Mailapp

Information von Oneplus zum Thema Windows Server ...

Internet

Pirate Bay lässt heimlich Krypto-Miner auf Nutzer-PCs laufen

(5)

Information von BassFishFox zum Thema Internet ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (25)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

JavaScript
gelöst Kopierschutz auf Webseite (13)

Frage von honeybee zum Thema JavaScript ...

Windows Server
Änderung Subnetz an AD Standort (13)

Frage von hansdampf zum Thema Windows Server ...