Dapatkan model kartu video melalui baris perintah di Windows

13

Saya perlu mendapatkan output teks dengan kartu video / model GPU, menggunakan alat apa pun yang ada di semua versi Windows dari XP dan seterusnya (tidak mungkin, saya belum menemukan apa pun) atau menggunakan alat pihak ketiga baris perintah kecil.

Ada ide?

pengguna2723297
sumber
1
dxdiag memiliki opsi baris perintah untuk output ke file txt atau xml, tidak akan dicetak ke layar. Anda bisa mendapatkan alat-alat gnuwin32 dan kemudian menyimpan file setelah Anda membuatnya dengan dxdiag (dan bahkan grep untuk baris yang Anda pedulikan).
MaQleod

Jawaban:

23
wmic path win32_VideoController get name 

melakukan pekerjaan secara singkat dari garis kommand. Terima kasih untuk jawaban Vlastimil Ovčáčík di atas tetapi tidak yakin mengapa begitu verbose.

oche
sumber
1
Jawaban lain menghapus baris "Nama" dari output.
DavidPostill
Memang benar, terima kasih, @DavidPostill. Namun, pendekatannya cukup rumit.
oche
Tidak begitu rumit ketika Anda mempelajari cara forkerjanya. Ini sangat kuat dan bagus untuk mengurai baris teks;)
DavidPostill
wmic path win32_VideoController get driverVersionakan menampilkan versi driver
nwgat
7

Jalankan dari batch:

@echo off
for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GPU_NAME=%%n
echo %GPU_NAME%
Vlastimil Ovčáčík
sumber
Hai! Itu terlihat persis seperti yang saya cari, tetapi saya tidak bisa membuatnya bekerja di PC saya, saya bukan ahli dalam batch, bisakah Anda membantu? Saya mendapatkan respons ini: C: \ Users \ user \ Desktop> gpu n) tidak terduga saat ini. C: \ Users \ user \ Desktop> for / F "token = * skip = 1" n) C: \ Users \ user \ Desktop>
user2723297
@ user2723297, itu tidak ditulis untuk batch, tetapi untuk langsung ditempelkan di baris perintah. Biarkan saya mengedit jawaban untuk mencegah kesalahpahaman.
Vlastimil Ovčáčík
Terima kasih, masih menerima pesan ini saat menjalankan langsung dari command prompt "%% n tidak terduga saat ini."
user2723297
@ user2723297, sebagai jawaban menyatakan, itu seharusnya dijalankan dari file batch. Juga stackoverflow.com/questions/14509652/…
Vlastimil Ovčáčík
3
  • Salin ini dan simpan ke desktop Anda sebagai videoCardScript.ps1
  • Klik Mulai, ketik powershell, lalu tekan enter
  • ketik cd ~\Desktoplalu tekan enter
  • ketik videoCardScript.ps1lalu tekan enter
  • catatan: jika Anda menerima kesalahan yang menyebutkan ... tidak dapat dimuat karena menjalankan skrip dinonaktifkan pada sistem ini. Anda mungkin perlu mengubah kebijakan eksekusi dengan perintah berikut di PowerShell: Set-ExecutionPolicy unrestricted.
  • **** Pastikan Anda melakukan perintah berikut ketika selesai untuk menjaga keamanan sistem Anda: ** Set-ExecutionPolicy restricted

    dxdiag /x dxoutput.xml | Out-Null  #Out-Null here ensures the process here has been created before proceeding
    [xml]$xmldata = get-content "dxoutput.xml"
    $xmldata.DxDiag.DisplayDevices.DisplayDevice| % {
        $name=$_.CardName
        $manu=$_.Manufacturer
        $chip=$_.ChipType
        $type=$_.OutputType
        $version=$_.DriverVersion
        write-host "Name: `t`t`t $name"
        write-host "Manufacturer: `t`t $manu"
        write-host "Chip Type: `t`t $chip"
        write-host "Output Type: `t`t $type"
        write-host "Driver Version: `t $version"
        }
    del dxoutput.xml
    

Jika Anda tertarik untuk mendapatkan info lebih lanjut, Anda dapat mengomentari del dxoutput.xmlperintah dengan menambahkan #di depannya. Anda kemudian dapat melihat isi file xml yang disimpan ke desktop Anda dan dapat menyesuaikannya. Jika Anda ingin menghapus beberapa info dalam skrip, Anda selalu dapat mengomentari baris-baris tertentu atau menghapusnya seluruhnya.

PS- Anda dapat melihat beberapa kartu yang sama. Ada alasan mengapa saya memiliki Jenis Output yang disertakan di sini: kartu akan menunjukkan kelipatan berdasarkan berapa banyak output yang dapat didukung. Dalam kasus saya, saya menunjukkan DVI (cukup jelas) dan HD15 (yang merupakan VGA).

PSS - Saya menjalankan ini pada mesin Windows 8. Ada kemungkinan Anda mungkin perlu menginstal PowerShell pada mesin XP. Mereka harus menginstal Service Pack 3 dan kemudian Anda dapat menginstal Powershell dari sini: http://support.microsoft.com/kb/968929 (Kerangka Manajemen Windows (Windows PowerShell 2.0, WinRM 2.0, dan BITS 4.0))

Bradley Forney
sumber
1

salin kode ini ke .VBSfile dan jalankan dengan cscript.exe:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_VideoController",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_VideoController instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
Next

Ini adalah output dari Laptop Dell saya:

-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: Intel(R) HD Graphics 4000
-----------------------------------
Win32_VideoController instance
-----------------------------------
Caption: AMD Radeon HD 7700M Series
magicandre1981
sumber
0

Jalankan di Command Prompt:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html
S.Alizadeh
sumber
3
Tolong jelaskan apa yang dilakukan perintah
Ramhound
Bisakah Anda menjelaskan apa yang kode ini lakukan dan bagaimana mengatasi masalah yang diberikan oleh OP? Kode yang tidak dapat dijelaskan bisa tampak tidak dipercaya dan berbahaya bagi pengguna.
bwDraco
Ia mendapat informasi Kartu Video dan menyimpannya dalam format html di Drive C yang bernama vga.html
S.Alizadeh
Perintah ini berfungsi, meskipun Anda tidak perlu (atau tidak bisa karena perm) mengatur c:\VGA.htmldari pengguna non admin. Alih-alih, ubah saja jalur VGA.htmluntuk membuang ke dir pengguna. Saya setuju meskipun tujuannya harus dijelaskan dalam pertanyaan daripada di sini di komentar.
dhaupin