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

Mit Batch untergeordneten Ordner suchen

Frage Entwicklung Batch & Shell

Mitglied: JK87

JK87 (Level 1) - Jetzt verbinden

14.09.2005, aktualisiert 15.09.2005, 20913 Aufrufe, 7 Kommentare

Hey,

habe folgendes Problem:

Ich möchte in einem bestimmten Ordner nach einen Unterordner suchen, welcher sich namentlich ständig ändert!
ODER
In einem Ordner alle untergeordneten Ordner nach Datei test.txt durchsuchen und Pfad als Variable speichern!

Danke für alle Hilfen

JK
Mitglied: Biber
14.09.2005 um 15:46 Uhr
Moin, JK87,

entweder mit "FOR /R... IN .. DO":
01.
::-------snipp FindDirContainingTestTxt.bat------------------------------------- 
02.
@for /R <i>x:\parentDir</i> %%i in (tes?.txt) do Set FoundDir=%%~dpi 
03.
::-------snapp FindDirContainingTestTxt.bat------------------------------------
oder mit "FOR /F" und "attrib " oder "Dir /s":
01.
::-------snipp OtherFindDirContainingTestTxt.bat--------------------------------- 
02.
@for /F "tokens=1-2" %%i in ('attrib /s <i>x:\Parentdir</i>\test.txt') do set FoundDir=%%~dpj 
03.
::-------snapp OtherFindDirContainingTestTxt.bat-------------------------------------------
für X: und ParentDir muss Du natürlich Deine Werte einsetzen.

..auch -zig andere Oneliner-Variationen sind möglich .. schau mal bei "Help FOR".

Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: JK87
14.09.2005 um 17:39 Uhr
Wie kann ich das mir folgenden verknüpfen?
%%~dpi = soll der gefunden Ordner sein

set prefs="%%~dpi\prefs.js"
echo user_pref("network.proxy.type", 1); >>%prefs%
Bitte warten ..
Mitglied: Biber
14.09.2005 um 18:27 Uhr
Wie kann ich das mir folgenden verknüpfen?
%%~dpi = soll der gefunden Ordner sein
Hm, könnten wir auch machen- ich hab den aber lieber %FoundDir% genannt, damit ich ihn wiederfinde..

set prefs="%%~dpi\prefs.js"
Wenn es machbar ist, dann schreib doch hier: set prefs="%FoundDir%\prefs.js"
Wenn Du die Variable aber nur an dieser einzigen Stelle brauchst, dann kannst du auch gleich in der "DO"-Anweisung oben schreiben:
....DO Set prefs="%%~dpi\prefs.js" ...bzw. ....DO Set prefs="%%~dpj\prefs.js"

echo user_pref("network.proxy.type", 1); >>%prefs%
Bist Du sicher mit dem ">>" (Anhängen)? Steht da schon mehr drin? Oder ist nicht ein ">" (Neu anlegen) sinnvoller?
Ich würde sonst zumindest schon vorhandene "user_pref"-Zeilen rausfiltern, falls die prefs.js schon vorhanden ist.
Aber das war ja auch gar nicht Deine Frage, geht mich auch nichts an.
Liebe Grüße
Biber
Bitte warten ..
Mitglied: JK87
14.09.2005 um 20:25 Uhr
Dank, Danke, Danke funktioniert genau so wie ich mir das vorgstellt habe!

%%~dpi war nur ein Beispiel, hab es nun eh so gemacht wie du

JK

PS: Nur aus wissensdrang, wofür steht das "tes?.txt"? Darf man ja nicht ändern sonst funkts nicht.
Bitte warten ..
Mitglied: Biber
14.09.2005 um 21:02 Uhr
Freut mich, dass es klappt, JK87...
das mit den erforderlichen Wildcards in dem "FOR /R"-Befehl ist auch so eine Geschichte, bei der die Sichtweisen von M$ und mir auseinandergehen: M$ hält es für ein Feature, ich eher für einen Bug.

Fakt ist, bei dem "FOR /R"-Befehl, der wirklich SAUSCHNELL ist und den ich gerne nutze, darf man/frau keine vollständigen Dateinamen angeben. Es muss ein "*" oder ein "?" im Dateinamen enthalten sein.

Auf Deutsch: (Beispiel vom CMD-Prompt aus)
01.
for /R c:\ %i in (test.txt) do @echo %~i 
ergibt
01.
c:\test.txt 
02.
c:\CA_LIC\test.txt 
03.
c:\Config.Msi\test.txt 
04.
c:\DB2LOG\test.txt 
05.
c:\Dokumente und Einstellungen\test.txt 
06.
c:\Dokumente und Einstellungen\Administrator\test.txt 
07.
c:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\test.txt .....
...also "findet" in jedem gottverdammten Verzeichnis eine Datei test.txt.

Ist nicht das, was ich von ihm wollte. Mit einem Buchstaben durch "?" ersetzt funktionierts,
01.
for /R c:\ %i in (te?t.txt) do @echo %~i 
da "findet" er nur die "test.txt" dort, wo sie vorhanden ist.

Okay, okay... kann natürlich sein, dass er (wenn es das Schicksal will) statt dessen eher eine "teat.txt" oder "telt.txt" findet, wenn ich nach "te?t.txt" suche.... aber mit Risiken muss man leben. Ich unterstelle mal, Du suchst ja auch nach einer Datei mit toitoitoi seltenerem Namen und setzt das "?" richtig.

Ich habe jedenfalls für dies und jenes einen Batch namens ForAllFiles.bat, den ich immer aufrufe, wenn ich irgendetwas mit ALLEN gleichnamigen Dateien auf meinen Laufwrken tun will ( z.B. für alle comctl32.ocx die Versionsnummer anzeigen oder alle Dateien "Read.me" umbenennen in "VerzeichnisnameReadme.txt oder was auch immer so anfällt. Und dieser ForAllFiles.bat besteht natürlich auch nur aus einem aufgebohrten "FOR /R" -Konstrukt... in dem ich auch nach Dateien "comctl3?.ocx" und "Read.?e" suchen muss.
Lässt sich nach dieser Erläuterung auch von jedem Newbie in zweieinhalb Minuten nachbilden.

Schönen Abend Dir
Biber
Bitte warten ..
Mitglied: JK87
15.09.2005 um 09:42 Uhr
Hab es mit "..\..\prefs.js" bis jetzt gelöst.

Aber danke für den Tipp mach es jetzt so wie du (pre?s.js), den das es diese seltene Datei nochmals gibt ist unwahrscheinlich.

Danke für alles

JK
Bitte warten ..
Mitglied: Biber
15.09.2005 um 10:05 Uhr
Moin, JK87,

wenn Dir das zu unsicher ist, nimm den normalen "DIR"-Befehl:
01.
for /f "delims=" %%i in ('dir /s /b x:\parentDir\prefs.js') do Set  prefs="%%~dpi\prefs.js"
("delims=" nur, falls Leerzeichen in den Pfadangaben sein können. )

Aber der "FOR /R " ist wirklich schneller.

LG Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch xkopie von Ordner in Ordner (3)

Frage von TicTakTeo zum Thema Batch & Shell ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (4)

Frage von Gien-app zum Thema Windows Server ...

Batch & Shell
gelöst Mit Batch einen Dateityp auf Partition suchen (2)

Frage von M4tze521999 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit Batch Datei nach Ordner benennen indem sie sich befindet? (4)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

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

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 ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...