Ordner mit diversen möglichen Pfaden suchen
Hallo,
Ich habe folgendes Problem:
Ich muss auf der Arbeit des öfteren Daten suchen.
Diese daten können auf diverse Rechnern sein wobei dort wieder diverse unterordner sind.
Ich möchte gerne einen gewissen Ordner suchen finden und dann herunterkopieren.
Ich habe dafür bei jedem Rechner einen share Ordner eingerichtet um schneller auf den richtigen Quell Ordner zu kommen.
z.B \\Rechnername\doc$\ da sind danach noch mehrere unterordner z.B \\Rechnername\doc$\VM5\Oktober2020\15.10.2020\ und dann würde meine Datei kommen.
Nun habe ich aber 15 PC's wo ich eine gewisse seriennummer suchen muss. Ich öffne hier momentan 15 mal den file explorer und gib die Seriennummern ein, bis ich bei einem Rechner einen Treffer habe.
Nun meine Frage: gibt es eine möglichkeit eine Batchdatei oder änlichen zu machen die mir automatisch eine gewissen Seriennummer auf 15 verschiedenen Pfaden mit unterorder durchsucht? es soll kein .txt file oder ähnlichen gefunden werden sondern ein Ordner mit mehreren .csv files darin.
Teilweise muss ich bis zu 50 solcher ordner suchen. und das dauert sehr lange.
Hat einer von euch eine Idee?
wäre nett. mfg Thomas
Ich habe folgendes Problem:
Ich muss auf der Arbeit des öfteren Daten suchen.
Diese daten können auf diverse Rechnern sein wobei dort wieder diverse unterordner sind.
Ich möchte gerne einen gewissen Ordner suchen finden und dann herunterkopieren.
Ich habe dafür bei jedem Rechner einen share Ordner eingerichtet um schneller auf den richtigen Quell Ordner zu kommen.
z.B \\Rechnername\doc$\ da sind danach noch mehrere unterordner z.B \\Rechnername\doc$\VM5\Oktober2020\15.10.2020\ und dann würde meine Datei kommen.
Nun habe ich aber 15 PC's wo ich eine gewisse seriennummer suchen muss. Ich öffne hier momentan 15 mal den file explorer und gib die Seriennummern ein, bis ich bei einem Rechner einen Treffer habe.
Nun meine Frage: gibt es eine möglichkeit eine Batchdatei oder änlichen zu machen die mir automatisch eine gewissen Seriennummer auf 15 verschiedenen Pfaden mit unterorder durchsucht? es soll kein .txt file oder ähnlichen gefunden werden sondern ein Ordner mit mehreren .csv files darin.
Teilweise muss ich bis zu 50 solcher ordner suchen. und das dauert sehr lange.
Hat einer von euch eine Idee?
wäre nett. mfg Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667087
Url: https://administrator.de/contentid/667087
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
9 Kommentare
Neuester Kommentar
Powershell z.B.
Batch z.B.
Gruß w.
$search = Read-Host "Suchbegriff eingeben"
$computers = 'Computer1','Computer2','ComputerN'
$computers | %{ls "\\$_\doc$" -Directory -Recurse -Filter "*$search*" | select -Expand FullName}
@echo off
set /p "search=Suchbegriff eingeben"
for %%a in (Computer1 Computer2 ComputerN) do dir /b /s /ad "\\%%a\doc$\*%search%*"
Gruß w.
Für die Ausgabe in ein Textfile einfach hinten an die Pipe die Ausgabe an ein File leiten
Wenn du stattdessen direkt kopieren willst
(um Duplikate zu verhindern bekommt jeder gefundene Ordner einen separaten neuen Namen im Zielverzeichnis), kannst du ja nach Belieben anpassen, Workflow ist uns ja unbekannt ...
$search = Read-Host "Suchbegriff eingeben"
$computers = 'Computer1','Computer2','ComputerN'
$computers | %{ls "\\$_\doc$" -Directory -Recurse -Filter "*$search*" | select -Expand FullName} | set-content 'D:\gefunden.txt'
$search = Read-Host "Suchbegriff eingeben"
$computers = 'Computer1','Computer2','ComputerN'
$destination = 'D:\Ordner'
$computers | %{ls "\\$_\doc$" -Directory -Recurse -Filter "*$search*"} | %{$cnt = 1 }{
$target = join-path $destination "found_$cnt"
while(Test-Path $target){$cnt++;$target = join-path $destination "found_$cnt"}
md $target -Force | out-null
copy-item $_.Fullname -Destination $target -Recurse -verbose
$cnt++
}
Jop, kein Problem
als ausgabe habe ich echo verwendet. das sollte so funktionieren oder?
Nein. das ist falsch.
So lüppt dat
mit der batch datei finde ich aber viel mehr. kann es sein das hier nur auf eine gewisse übereinstimmung geschaut wird?
Nein, alles was du eingibst wird so gefundenich will nur ordner finden, die diese nummer exakt im Namen haben. es kann dannach noch etwas stehenn z.B 30874-20-31-05677 FAIL dies sollte auch gefunden werden.
Ja kein Thema die Wildcards im dir befehl sorgen ja dafür.als ausgabe habe ich echo verwendet. das sollte so funktionieren oder?
*... ) do dir /b /s /ad "\\%%a\doc$\*%search%*" echo %%a >> "C:\users\administrator\documents\log.txt"
>
So lüppt dat
@echo off
set /p "search=Suchbegriff eingeben"
>"C:\users\administrator\documents\log.txt" (for %%a in (Computer1 Computer2 ComputerN) do dir /b /s /ad "\\%%a\doc$\*%search%*")
Du verwendest ja auch den falschen code, hatte ich oben schon geschrieben! Ein echo ist da Bullshit "dir" macht ja schon eine Ausgabe!
Meine oben gepostete Zeile funktioniert hier einwandfrei (getestet)!
Alternativ kannst du es auch so mit findstr schreiben
Bitte beachten, Ordner werden rekursiv unterhalb des Shares gefunden! Wenn das nicht gewollt ist dann den Parameter /s beim dir Befehl weglassen.
btw. wenn es um schnelle Suchen geht würde ich mir mal
Everything
ansehen
Meine oben gepostete Zeile funktioniert hier einwandfrei (getestet)!
Alternativ kannst du es auch so mit findstr schreiben
@echo off
set /p "search=Suchbegriff eingeben"
>"C:\users\administrator\documents\log.txt" (for %%a in (Computer1 Computer2 ComputerN) do (dir /b /s /ad "\\%%a\doc$" | findstr /ilc:"%search%"))
btw. wenn es um schnelle Suchen geht würde ich mir mal
Everything
ansehen