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

Batch Script welches Pfad zu allen a.txt Dateien ausgibt?

Mitglied: webtrajo

webtrajo (Level 1) - Jetzt verbinden

26.04.2010 um 14:52 Uhr, 3338 Aufrufe, 16 Kommentare

Hallo,

ich bin auf der Sucher nach einem Script welches einen Verzeichnispfad auf meiner
Festplatte nach "a.txt" durchsucht und mir dazu die dazugehörigen Pfade ausgibt.

Hat jemand eine Idee?

Vielen Dank!
Gruß
Mitglied: Dani
26.04.2010 um 14:56 Uhr
Hi,
versuch es mal manuell in der Konsole mit "dir /s /b a.txt". Damit sollten alle Dateien gefunden und ausgegeben werden.


Grüße,
Dani
Bitte warten ..
Mitglied: webtrajo
26.04.2010 um 15:05 Uhr
Hallo,
leider kein Erfolg. Gibt es eine andere Möglichkeit?
Gruß
Bitte warten ..
Mitglied: edepfau
26.04.2010 um 15:05 Uhr
Auf der Kommandozeile listet
01.
for /R E:\PFAD %i in (a.txt) do @echo %i
alle Dateien namens "a.txt" in E:\PFAD und allen Unterverzeichnissen auf, vollständig mit Pfad.

01.
for /R E:\PFAD %i in (a.txt) do @echo %~pi
gibt nur die Pfade zurück. Allerdings auch mehrfach, wenn es mehr als ein Treffer pro Verzeichnis gibt.



Hast Du wirklich vorher schon alles durchprobiert gehabt?

Gruss,
Ede
Bitte warten ..
Mitglied: Dani
26.04.2010 um 15:10 Uhr
Hi,
seltsam...was für ein Betriebssystem benutzt du?

Bei mir sieht das so aus:
01.
C:\>dir /s /b firefox
02.
C:\Lokal\Firefox
03.
C:\Lokal\Firefox\App\Firefox
04.
C:\Users\test\AppData\Roaming\Mozilla\Firefox
Läuft bei mir unter Windows 7...


Grüße,
Dani
Bitte warten ..
Mitglied: bastla
26.04.2010 um 15:26 Uhr
@edepfau
Schaut auch lustig aus, wenn Du
for /R E:\PFAD %i in (ichbinnichtda.txt) do @echo %i
draus machst ...

Insofern würde ich Danis Ansatz bevorzugen (und zur Not mit "/a-d" ergänzen).

Grüße
bastla
Bitte warten ..
Mitglied: edepfau
26.04.2010 um 15:42 Uhr
das scheint eine Eigenart der for-Schleife zu sein..kann aber sehr einfach durch
01.
for /R E:\PFAD %i in (a.txt) do @if exist %i echo %~pi
behoben werden.
Inzwischen habe ich mich darum gekümmert, den uniq-Befehl nachzubilden, damit die Pfade nur einmal angezeigt werden.

Das geht in einem Batchfile z.B. so
01.
@echo off
02.
for /R E:\PFAD %%i in (%1) do @if exist %%i CALL :COMP "%%~pi"
03.
set _last=
04.
set _this=
05.
goto :EOF
06.

07.
:COMP
08.
set _this=%~1
09.
if defined _last (
10.
   if not "%_last%"=="%_this%" (
11.
      set _last=%_this%
12.
      echo %_this%
13.
   )
14.
) else (
15.
   echo %_this%
16.
   set _last=%_this%
17.
)
18.
goto :EOF
Als erster Parameter wird der Dateiname oder ein Muster erwartet (*.log). Ausserdem werden hier Pfade mit Leerzeichen richtig behandelt.

Der Vorschlag mit "dir /s" hat den Nachteil, dass keine Pfade aufgelistet werden.
Bitte warten ..
Mitglied: bastla
26.04.2010 um 16:07 Uhr
@edepfau
Der Vorschlag mit "dir /s" hat den Nachteil, dass keine Pfade aufgelistet werden.
Sollte wirklich "nur Pfade" gemeint gewesen sein, dann wäre natürlich eine Schleife erforderlich - zB in der "/f"-Variante (müsste sich dann auch nur um die tatsächlichen Treffer kümmern) - konkret:
for /f "delims=" %%i in ('dir /s /b /a-d "E:\PFAD\a.txt"') do @echo %%~dpi
Abgesehen davon würde ich "Pfad" trotzdem nicht so eng auslegen und daher eher "%%~dpi" verwenden ...

... was allerdings beides letztlich nur webtrajo (BTW: Willkommen im Forum!) wirklich wissen kann.

Grüße
bastla

P.S.: "unique" je Verzeichnis sollten Dateien namens "a.txt" eigentlich ohnehin sein ...
Bitte warten ..
Mitglied: Biber
26.04.2010 um 16:19 Uhr
Moin bastla und edepfau,

Zitat von bastla:
@edepfau
Schaut auch lustig aus, wenn Du
for /R E:\PFAD %i in (ichbinnichtda.txt) do @echo %i
> 
draus machst ...
Zitat von edepfau:
das scheint eine Eigenart der for-Schleife zu sein..kann aber sehr einfach durch
01.
> for /R E:\PFAD %i in (a.txt) do @if exist %i echo %~pi
02.
> 
behoben werden.
Nun macht mal nicht die jungen Nachwuchstalente nervös.
So schlimm haben es die RedmonderInnen ja auch nicht zusammenphantasiert.

Der oben von bastla angesprochene Effekt tritt natürlich nur auf, wenn man/frau es zulässt - dadurch, dass eine Datei EXAKT gesucht / Wildcards weggelassen werden.

Wird der Dateiname "ichBinNichtDa.bla" um ein Wildcard-Fragezeichen z.B am Ende ergänzt, dann kommt kein vermeintlicher Fehlalarm.
Oder nochmal zur Verdeutlichung:
>for /r "." %i in (bla.blubb) do @echo %i
....
D:\temp\test\texte\bla.blubb
D:\temp\test22\bla.blubb
D:\temp\test222\bla.blubb
D:\temp\testheute\bla.blubb
....
.....{ gibt es natürlich nirgends, aber 57 Unterverzeichnisse werden aufgelistet }

>for /r "." %i in (bla.blubb?) do @echo %i
{ keine einzige Zeile Output .... as should do...}
--
-- Gegenprobe mit EXISTIERENDEN Dateien: mit und ohne Wildcards:
--
>for /r "." %i in (feef.txt) do @echo %i
...{Existiert 1x, aber 57 Verzeichnisse werden angelistet}
>for /r "." %i in (feef.txt?) do @echo %i
D:\temp\test\feef.txt ----> genau eine Fund-Zeile as should do
Grüße
Biber

P.S.
Der Vorschlag mit "dir /s" hat den Nachteil, dass keine Pfade aufgelistet werden.
Dann könnten wir doch "Dir /s /b" nehmen...,-)
Bitte warten ..
Mitglied: edepfau
26.04.2010 um 16:34 Uhr
01.
>for /r "." %i in (bla.blubb?) do @echo %i 
krank, aber cool; danke, wieder was gelernt.
Ich werde immer noch nicht glücklich mit "dir /s/b". Anders als der OP suche ich nämlich gleich nach einem wildcard (*.log), nach der Überlegung "kann er wildcard, kann er auch exakte Namen". Dann brauche ich aber ein uniq hinterher, um mehrfache Pfade auszusieben.
Ist doch gelungen, oder? (uniq meine ich)

Gruss,
Ede
Bitte warten ..
Mitglied: LotPings
26.04.2010 um 16:53 Uhr
Zitat von edepfau:
Dann brauche ich aber ein uniq hinterher, um mehrfache Pfade auszusieben.
Ist doch gelungen, oder? (uniq meine ich)
Hallo Ede,

wenn man mal vom didaktischen Nutzen der Variable "_this" absieht ließe sich das kürzer formulieren:
:COMP
if defined _last if "%_last%"=="%~1%" Goto :eof
echo.%~1
set "_last=%~1"
Gruß
LotPings
Bitte warten ..
Mitglied: edepfau
26.04.2010 um 17:09 Uhr
Hallo LotPings,

ja, viel klarer jetzt:
01.
:UNIQ
02.
if defined _last if "%_last%"=="%~1" goto :EOF
03.
echo %~1
04.
set "_last=%~1"
05.
goto :EOF
In der Zeile 2 war noch ein "%" zuviel. Der Code wird jetzt auch etwas schneller laufen, weil weniger shells gestartet werden müssen.

Falls der OP noch mitliest: im Batchfile weiter oben muss jetzt natürlich CALL :UNIQ stehen.

NB: "echo.%var" und "echo %var" sind äquivalent, oder kenne ich da was noch nicht?
Bitte warten ..
Mitglied: LotPings
26.04.2010 um 17:27 Uhr
Zitat von edepfau:
NB: "echo.%var" und "echo %var" sind äquivalent, oder kenne ich da was noch nicht?
Alte (gute) Gewohnheit, wenn eine Variable keinen Inhalt hat, verhindert der Punkt das Echo den Satus [ON|OFF] zurückgibt.

Gruß
LotPings
Bitte warten ..
Mitglied: bastla
26.04.2010 um 17:45 Uhr
... verhindert der Punkt das Echo den Satus [ON|OFF] zurückgibt.
... es darf aber zB auch ein "\", ein "," oder ein ";", oder wenn Du magst auch ein "+" sein - so, wie eben bei Bedarf auch eine Leerzeile erzeugt werden kann ...
---
So schön die "UNIQisierung" inzwischen auch umgesetzt ist - ich sehe in diesem Fall weiterhin keine Notwendigkeit dafür (es sei denn, webtrajo hätte tatsächlich mehrere "a.txt" in einem Verzeichnis versammelt ) ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
26.04.2010 um 18:00 Uhr
Zitat von bastla:
... es darf aber zB auch ein "\", ein "," oder ein ";", oder wenn Du magst auch ein "+" sein - so, wie eben bei Bedarf auch eine Leerzeile erzeugt werden kann ...
Wenn schon, denn schon ":" und "/" tun es auch.
Im Usenet gab es mal eine Untersuchung dazu, welche der Trenner schneller verarbeitet wurden, aber bei der Geschwindigkeit heutiger CPUs ist das marginal.

Gruß
LotPings
Bitte warten ..
Mitglied: Biber
26.04.2010 um 18:04 Uhr
[OT] @bastla
Zitat von bastla:
es sei denn, webtrajo hätte tatsächlich mehrere "a.txt" in einem Verzeichnis versammelt ) ...

Ich nehme doch stark an, dass so ein 64bit-Win7-OktaCore-Bolide auch Dateien in 3 oder 4 Dimensionen stapeln kann, oder?

Sonst hätten wir doch alle immer noch mit Windows XP mailen und Solitaire spielen können...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: bastla
26.04.2010 um 18:05 Uhr
[OT]
@LotPings
Ja willst Du denn Biber gar nix mehr übrig lassen?

Grüße
bastla
[/OT]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Ordner durchsuchen nach Datei und Pfad ausgeben

gelöst Frage von easy4breezyBatch & Shell2 Kommentare

Hi, ich möchte mehrere Ordner/Festplatten nach einer Datei bzw. einem "Suchwort" durchsuchen und falls diese Datei/Dateien existiert/en den Pfad ...

Batch & Shell

INI Datei über Batch Script verändern

Frage von SchmidleBatch & Shell3 Kommentare

Hallo zusammen, ich muss in einer ini Datei einen Eintrag anpassen, der den ProxyServer hinterlegt. Wir haben einen neuen ...

Microsoft

Batch Datei zum Kopieren bestimmter ordner mit Pfad

gelöst Frage von eivloxMicrosoft6 Kommentare

Hallo zusammen , Hab schon ein bisschen gegoogled aber nichts passendes gefunden . Folgendes Problem: Ich möchte einen Ordner ...

Batch & Shell

Batch script: Problem beim Kopieren und bearbeiten, dynamischen Pfad ermitteln

gelöst Frage von HedgehogiBatch & Shell31 Kommentare

Hallo Community, leider habe auch ich ein Problem mit meinem batch script und hoffe ihr könnt mir weiter helfen. ...

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 2 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 3 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 5 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

Windows 10
Laufwerks-Mapping über Batch - Laufwerke werden zu spät im Explorer angezeigt
Frage von PhilzipWindows 1015 Kommentare

Hallo zusammen, ich habe beim Thema Laufwerksmapping via Batch ein Phänomen, welches ich so noch nicht kannte. Per Batch ...

Vmware
Richtige Einstellungen beim ESXI 6.5 in Sachen CPU Zuweisung bei einer VM
gelöst Frage von zeroblue2005Vmware13 Kommentare

Hallo Zusammen, heute wollte ich mal fragen, wie ich eine VM die richtige Anzahl der von CPUs zuweise. Bin ...