Encontrar um arquivo com vbs e abrir a pasta de localização

0

Existe uma maneira de fazer um script em vbs (ou outro) que busca em cada partição do disco rígido para um arquivo e, em seguida, abre a pasta de localização do arquivo se o arquivo foi encontrado? Portanto, se eu quiser encontrar o arquivo "rand.txt" que está localizado na unidade H: em H: \ stuff \ texts \, o código será exibido em C:, D:, E:, F :, se encontrar em H: procede-se a abrir a pasta "textos". Eu tentei com o cmd, mas na verdade não está funcionando para mim ...

    
por powerofwheels 23.01.2015 / 19:18

2 respostas

0

Aqui está uma solução em lote do Windows (pode ser um tempo consumindo uma):

@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

Em vez de echo %%H , você tem o caminho completo para o nome do arquivo ...

Editar : where /r %%G:\ rand.txt 2>NUL (importante: 2>NUL ) para eliminar mensagens de erro ERROR: The system cannot find the file specified se o diretório inicial não existir e INFO: Could not find files for the given pattern(s) como nos próximos exemplos (enumeração fragmentária):

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>
    
por 23.01.2015 / 20:00
0

Isso deve ser feito em Powershell:

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