Suchen einer Datei mit VBS und Öffnen des Speicherordners

Suchen einer Datei mit VBS und Öffnen des Speicherordners

gibt es eine Möglichkeit, ein Skript in VBS (oder einem anderen Programm) zu erstellen, das in jeder Festplattenpartition nach einer Datei sucht und dann den Speicherortordner der Datei öffnet, wenn die Datei gefunden wurde? Wenn ich also die Datei „rand.txt“ finden möchte, die sich auf dem Laufwerk H: in H:\stuff\texts\ befindet, sucht der Code in C:,D:,E:,F: und wenn er sie dann in H: findet, öffnet er den Ordner „texts“. Ich habe es mit cmd versucht, aber das funktioniert bei mir nicht wirklich …

Antwort1

Hier ist eine Batch-Lösung für Windows (kann zeitaufwändig sein):

@ECHO OFF >NUL
@SETLOCAL enableextensions disabledelayedexpansion
for %%G in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
   if exist %%G:\NUL (
       echo %%G: drive
       for /F "tokens=*" %%H in ('where /r %%G:\ rand.txt 2>NUL') do (

         echo %%H
         explorer.exe /e,/select,"%%~fH"

       )
     )
   )
@ENDLOCAL
@GOTO :eof

Stattdessen echo %%Hhaben Sie den vollständigen Pfad zum Dateinamen ...

Bearbeiten: where /r %%G:\ rand.txt 2>NUL(wichtig:) 2>NULum Fehlermeldungen zu vermeiden, ERROR: The system cannot find the file specifiedwenn das Startverzeichnis nicht existiert und INFO: Could not find files for the given pattern(s)wie in den nächsten Beispielen (fragmentarische Aufzählung):

d:\xxx>where /r C:\bat\ randx.txt
ERROR: The system cannot find the file specified.

d:\xxx>echo %errorlevel%
2

d:\xxx>where /r d:\bat\ randx.txt
INFO: Could not find files for the given pattern(s).

d:\xxx>echo %errorlevel%
1

d:\xxx>where /r d:\bat\ rand.txt
d:\bat\files\rand.txt

d:\xxx>echo %errorlevel%
0

d:\xxx>

Antwort2

In Powershell sollte es folgendermaßen funktionieren:

gwmi Win32_LogicalDisk | Select-Object -expand DeviceID | %{$drive = $_; $drive; ls "$drive\rand.txt" -recurse | %{ii (Split-Path $_)}}

verwandte Informationen