2016-05-25 24 views
0

Ich habe eine Datei TestProject.dll und es liegt an verschiedenen Orten auf meinem Computer wie D:\Folder1\TestProject.dll, D:\Test\Info\TestProject.dll usw.Suche nach einer bestimmten Datei auf meinem Windows-Rechner mit dem Batch-Scripting

Ich möchte all diese Orte finden überall dort, wo es sich befindet und bereiten eine Textdatei (SearchResults.txt), die wie unten dargestellt wie folgt aussieht:

D: \ Folder1 \ TestProject.dll
D: \ Test \ Info \ TestProject.dll

Ich möchte dies mit einer Batch-Skriptdatei tun. Ich bin neu in diesem Skript. Bitte helfen Sie mir hier.

+1

' dir/b/s D: \ TestProject.dll> SearchResults.txt' (und nimm dir eine Tasse Kaffee - das kann eine Weile dauern) – Stephan

+0

Danke @Stephan !! Aber ich bin nicht sicher, ob die Datei in C oder D Ordner ist? In diesem Fall kann ich es nicht wie D: \ TestProject.dll> SearchResults.txt geben. Kann ich bitte eine allgemeinere Lösung plz haben? – yashwanth

Antwort

1

Verwenden Sie dir /s /b, um in einem einzelnen Laufwerk zu suchen.
Erstellen Sie eine Schleife, um jede Festplatte zu überprüfen.
setzen Sie die komplette Ausgabe in eine Datei.

(
    for /f %%a in ('wmic logicaldisk where "drivetype=3" get caption^,size^|find ":"') do (
    echo now checking drive %%a... 
    dir /b /s %%a\TestProject.dll 
) 
)>SearchResults.txt 

Hinweis: wir nicht wirklich brauchen, um die Größe hier, dass dies nur eine von mehreren Möglichkeiten, um zu kommen, um wmic ‚s hässliche Zeilenende, das würde den Rest des Codes ruinieren
where drivetype=3 bedeutet„Harddisks nur“(Drop, wenn Sie in alle drivetypes (thumbdrives, CD gesucht werden sollen, was auch immer)

Denken Sie daran:. dies durch Ihr gesamtes Dateisystem suchen (s), so wird es einige Zeit braucht

+0

Super @Stephan es funktioniert. Kann ich das Ergebnis auf einen bestimmten Unterordner beschränken, so wie das Ergebnis von D: \ Test ??? – yashwanth

+0

ja, natürlich. Nur in 'D: \ Test':' dir/b d: \ test \ TestProject.dll'. In 'D: \ Test' und seinen Unterordnern:' dir/s/bd: \ test \ TestProject.dll' (wenn es '/ s' gibt, denke an es wie' dir/bd: \ test \ * \ TestProject. dll' (was nicht funktioniert - nur um es sich vorzustellen) – Stephan

+0

Danke nochmal, aber das folgende Skript gibt die Ergebnisse zweimal zurück \ n @echo aus set arg1 =% 1 echo% arg1% \ ReadDIB_Helper.dll ( für/f %% a in ('wmic logicaldisk wobei' drivetype = 3 "get caption ^, size^| find": "') do ( dir/b/s% arg1% \ ReadDIB_Helper.dll ) )> SearchResults .txt können Sie mir bitte sagen, was mit dem Skript nicht in Ordnung ist? – yashwanth