查找哪些驱动器已连接到计算机

时间:2014-02-09 05:47:34

标签: batch-file

我有一个小方面的项目,我一直在努力,我想添加一个选项来扫描计算机,找到哪些驱动器连接和它们是什么(USB,硬盘驱动器,光盘驱动器,SSD等)

这是我到目前为止所做的。

echo off
:start
color 0a
cls
title Search
echo To search enter the drive and term you wish to search below.
echo ---------------------------------------------------------------------------
set inputdrive=
set /p inputdrive=Drive:
set input=
set /p input=Search:
dir %inputdrive%:\%input% /s /b
pause
echo search again?
set inputsearch=
set /p inputsearch=(Y/N)
if %inputsearch%==Y goto start
if %inputsearch%==N exit

我计划在脚本开头添加一个扫描连接驱动器的选项。

2 个答案:

答案 0 :(得分:1)

您可以使用WMIC获取信息,而无需管理员权限。

以下代码提供了所有可用驱动器的清单,包括未安装任何介质的可移动介质驱动器:

@echo off
setlocal

set ^"driveTypes=^
0Unknown          :^
1No Root Directory:^
2Removable Media  :^
3Local Disk       :^
4Network Drive    :^
5CD/DVD           :^
6RAM Disk         :^"

echo Available Drives:
echo(
echo ID  Drive Type         Volume Name
echo --  -----------------  -----------
for /f "skip=1 tokens=1-3" %%A in (
  '"wmic logicalDisk get DeviceID, DriveType, VolumeName"'
) do if "%%B" neq "" (
  setlocal enableDelayedExpansion
  for /f "delims=:" %%D in ("!driveTypes:*%%B=!") do (
    endlocal
    echo %%A  %%D  %%C
  )
)

只需要更多代码就可以将列表限制为仅适用于媒体的驱动器:

@echo off
setlocal

set ^"driveTypes=^
0Unknown          :^
1No Root Directory:^
2Removable Media  :^
3Local Disk       :^
4Network Drive    :^
5CD/DVD           :^
6RAM Disk         :^"

echo Available Drives:
echo(
echo ID  Drive Type         Volume Name
echo --  -----------------  -----------
for /f "skip=1 tokens=1-3" %%A in (
  '"wmic logicalDisk get DeviceID, DriveType, VolumeName"'
) do if "%%B" neq "" dir %%A >nul 2>nul && (
  setlocal enableDelayedExpansion
  for /f "delims=:" %%D in ("!driveTypes:*%%B=!") do (
    endlocal
    echo %%A  %%D  %%C
  )
)

答案 1 :(得分:0)

fsutil fsinfo drives
fsutil fsinfo drivetype c:

但您需要拥有管理员权限才能使用它