2013-05-17 31 views
-2

我不是一个真正的程序员。我是一个新手。运行电脑测试的批处理脚本

你们可以请帮我一个Windows批处理文件,将运行电脑测试?

  • 检测到任何硬盘驱动器,然后对它们运行一个chkdisk
  • 检测到任何USB端口
  • 检测到任何闪存驱动器插在PC
  • 检查显示像素

我已经开始与此检测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

好的第一步是告诉我们这些错误是什么。 – hammar

+1

使用批处理脚本检测闪存驱动器并非易事。我尝试了很多次,从未真正成功过。我想说,这是一个简单的问题,超出了帮助的范围。 – djangofan

+1

“检查显示像素”=获取当前的显示分辨率? – meatspace

回答

-1

我会建议您尝试

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

检查每个磁盘作为一个单独的音量

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岁。去留下我的答案为后人和任何人挖掘答案。