用于运行计算机测试的批处理脚本

时间:2013-05-17 17:46:35

标签: batch-file usb usb-drive

我不是真正的程序员。我是新手。

你们可以帮我一个运行计算机测试的Windows批处理文件吗?

  • 检测任何硬盘驱动器,然后在它们上运行chkdisk
  • 检测任何USB端口
  • 检测电脑中的任何闪存驱动器插头
  • 检查显示像素

我已经开始使用它来检测USB但不知何故会出现一些错误

@echo off

setlocal EnableDelayedExpansion
set PNPDeviceID=4002FDCCE0E4D094
set Q='wmic diskdrive where "interfacetype='USB' and PNPDeviceID like '%%%PNPDeviceID%%%'" assoc /assocclass:Win32_DiskDriveToDiskPartition'
echo %Q%
for /f "tokens=2,3,4,5 delims=,= " %%a in (%Q%) do (
  set hd=%%a %%b, %%c %%d
  call :_LIST_LETTER !hd!)
goto :_END

:_LIST_LETTER
(echo %1 |find  "Disk ") >nul|| goto :_EOF 
for /f "tokens=3 delims==" %%a in ('WMIC Path Win32_LogicalDiskToPartition  ^|find %1') do set TMP_letter=%%a
set Part_letter=%TMP_letter:~1,2% 
echo %Part_letter% %1
goto :_EOF


:_END
:_EOF
:: *** end
pause

2 个答案:

答案 0 :(得分:0)

这是一个批处理脚本,几乎可以完成您所需的一切。

Checkdisk将针对任何本地固定驱动器运行。您可以在新窗口(chkdskAsync=true)中运行它,或让它在程序内运行(chkdskAsync=false)。另外,使用chkdskLaunchArguments=变量指定chkdsk标志。

@ECHO OFF
CLS
SETLOCAL ENABLEDELAYEDEXPANSION
:: Use these lines to specify how CHKDSK and Notepad will run
:: ===============================================
SET chkdskLaunchArguments=/F /R
SET chkdskAsync=true
SET launchNotepad=true
:: ===============================================

COPY /Y NUL C:\Users\public\data.txt >nul 2>&1
ECHO Getting drive(s) information
FOR /F "tokens=*" %%A IN ('wmic logicaldisk get caption^, description^, providername^, volumename') DO (
    ECHO.%%A>>C:\Users\public\data.txt
)
FOR /F "tokens=1,2 skip=1" %%A IN ('wmic logicaldisk get caption^, drivetype') DO (
    IF %%B EQU 3 (
        IF "!chkdskAsync!" EQU "true" (
            START CMD /C CHKDSK %%A %chkdskLaunchArguments%
        ) ELSE (
            CHKDSK %%A %chkdskLaunchArguments%
        )
    )
)
ECHO Getting resolution information
FOR /F "tokens=*" %%A IN ('wmic path Win32_VideoController  get CurrentHorizontalResolution^,CurrentVerticalResolution') DO (
    ECHO.%%A>>C:\Users\public\data.txt
)
ECHO Information gathered ... saved to C:\Users\public\data.txt
ECHO Showing results.
IF "!launchNotepad!" EQU "true" (
    START /WAIT notepad.exe /A C:\Users\public\data.txt
)
ENDLOCAL
EXIT

完成后,它会将所有内容保存到C:\Users\Public\data.txt。它还将在记事本中启动文件(如果launchNotepad=true设置为... true)。

输出如下:

Caption  Description         ProviderName                               VolumeName                     

A:       Network Connection  \\somefileserver.domain\                       New Volume        
C:       Local Fixed Disk                                                                              
E:       Removable Disk                                                 someuser Drive           
H:       Network Connection  \\somefileserver.domain\users$\someuser  Data Share and User Home Dirs  
P:       Network Connection  \\somefileserver.domain\Data              Data Share and User Home Dirs  
S:       Network Connection  \\somefileserver.domain\share                                                         

CurrentHorizontalResolution  CurrentVerticalResolution  

1920                         1080                       

注意:请务必以管理员身份运行此操作。 如果你想让chkdsk运行

不幸的是,除了存储之外,还没有办法获取所有USB设备。希望这有帮助!

我没有意识到这个问题是4岁。要留下我的答案给后人和任何人挖掘答案。

答案 1 :(得分:-1)

我建议尝试

chkdsk volume=C:\ D:\ E:\ F:\

将每个磁盘检查为一个单独的卷