-1

私は実際にはプログラマーではありません。私は初心者です。

コンピューター テストを実行する Windows バッチ ファイルについて教えてください。

  • ハードドライブを検出し、それらでchkdiskを実行します
  • USBポートを検出
  • PCのフラッシュドライブプラグを検出します
  • 表示ピクセルを確認する

USBを検出するためにこれを開始しましたが、どういうわけかいくつかのエラーが発生しました

@エコーオフ

setlocal EnableDelayedExpansion
PNPDeviceID=4002FDCCE0E4D094を設定
set Q='wmic diskdrive where "interfacetype='USB' and PNPDeviceID like '%%%PNPDeviceID%%%'" assoc /assocclass:Win32_DiskDriveToDiskPartition'
エコー %Q%
for /f "tokens=2,3,4,5 delims=,= " %%a in (%Q%) do (
  hd=%%a %%b, %%c %%d を設定
  呼び出し:_LIST_LETTER !hd!)
後藤:_END

:_LIST_LETTER
(echo %1 |find "Disk ") >nul|| 後藤:_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
後藤:_EOF


:_終わり
:_EOF
:: *** 終わり
一時停止
4

2 に答える 2

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歳だとは知りませんでした。後世と答えを探している人のために私の答えを残すつもりです。

于 2018-02-22T21:11:34.000 に答える
-1

試してみることをお勧めします

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

ディスクをそれぞれ別のボリュームとしてチェックする

于 2013-10-01T22:23:06.240 に答える