Como criar um arquivo de lote para pesquisar todas as unidades?

1

Como posso obter esse arquivo em lote para ler todas as unidades físicas e mapeadas? Funciona bem com o C: mas não lê nenhum outro drive.

@echo off
set filePath=
for /R c:\ /d %%a in (*) do if exist "%%a\FileName" set filePath=%%a& goto continue
:continue
if defined filePath echo %COMPUTERNAME% %username% yes >> \server\%computername%.txt
    
por Joe Witkowski 02.01.2013 / 21:05

2 respostas

2

Não há variável que simplesmente carrega todas as cartas mapeadas.

se você estiver executando como administrador,

fsutil fsinfo drives

retorna todas essas unidades - um exemplo de código:

FOR /F "usebackq tokens=1" %%a IN ('MOUNTVOL ^| FIND ":\"') DO (FOR /F "usebackq tokens=3" %%b IN ('FSUTIL FSINFO DRIVETYPE %%a') DO (IF /I "%%b" EQU "Removable" ECHO %%a ))

(brinque com as saídas)

... se não for viável, você terá que passar por todos eles, por exemplo:

for %%i in (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 %%i: @echo %%i:

(provavelmente deve omitir as letras da unidade esperada da unidade óptica / cartão de memória).

O script VBS, ou Powershell, é ideal para esse tipo de coisa.

    
por 03.01.2013 / 05:40
0

if exist %%i : nem sempre funciona. Então você também pode verificar suas unidades com este caminho:

(dir %%i:>NUL) && (
  echo Drive [%%i]: exist
) || (
  echo Drive [%%i]: NOT exist
)

Espero que isso ajude

    
por 22.10.2015 / 13:29