รับรุ่นการ์ดแสดงผลผ่านบรรทัดคำสั่งใน Windows


13

ฉันต้องการเอาท์พุทข้อความกับการ์ดแสดงผล / GPU รุ่นโดยใช้เครื่องมือใด ๆ ที่มีอยู่ใน Windows ทุกรุ่นตั้งแต่ XP ขึ้นไป (ไม่แน่ฉันยังไม่พบอะไรเลย) หรือใช้เครื่องมือบรรทัดคำสั่งขนาดเล็กอื่น ๆ

ความคิดใด ๆ


1
dxdiag มีตัวเลือกบรรทัดคำสั่งเพื่อส่งออกไปยังไฟล์ txt หรือ xml เพียงแค่ไม่พิมพ์ไปที่หน้าจอ คุณสามารถรับเครื่องมือ gnuwin32 และแมวไฟล์หลังจากที่คุณสร้างมันด้วย dxdiag (และแม้กระทั่ง grep สำหรับบรรทัดที่คุณสนใจ)
MaQleod

คำตอบ:


23
wmic path win32_VideoController get name 

งานรัดกุมจาก commmand line ขอบคุณคำตอบของ Vlastimil Ovčáčíkด้านบน แต่ไม่แน่ใจว่าทำไม verbose ถึงดังกล่าว


1
คำตอบอื่น ๆ จะลบบรรทัด "ชื่อ" ออกจากเอาต์พุต
DavidPostill

แน่นอนมันทำขอบคุณ @DavidPostill ถึงกระนั้นมันก็เป็นวิธีที่ค่อนข้างซับซ้อน
oche

ไม่ซับซ้อนมากเมื่อคุณเรียนรู้วิธีการforทำงาน มันมีประสิทธิภาพมากและยอดเยี่ยมสำหรับการแยกบรรทัดข้อความ;)
DavidPostill

wmic path win32_VideoController get driverVersionจะแสดงเวอร์ชั่นของไดรเวอร์
nwgat

7

เรียกใช้จากแบทช์:

@echo off
for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GPU_NAME=%%n
echo %GPU_NAME%

Hi! ดูเหมือนว่าฉันกำลังมองหา แต่ฉันไม่สามารถทำงานบนพีซีของฉันได้ฉันไม่เชี่ยวชาญในแบทช์คุณช่วยได้ไหม ฉันได้รับคำตอบนี้: C: \ Users \ user \ Desktop> gpu n) ไม่คาดคิดในขณะนี้ C: \ Users \ user \ Desktop> สำหรับ / F "โทเค็น = * skip = 1" n) C: \ Users \ user \ Desktop>
user2723297

@ user2723297 มันไม่ได้เขียนสำหรับแบทช์ แต่จะวางโดยตรงในบรรทัดคำสั่ง ให้ฉันแก้ไขคำตอบเพื่อป้องกันการเข้าใจผิด
Vlastimil Ovčáčík

ขอขอบคุณยังคงได้รับข้อความนี้เมื่อทำงานตรงจากพรอมต์คำสั่ง "%% n ไม่คาดคิดในเวลานี้"
user2723297

@ user2723297 ตามคำตอบแล้วมันควรจะถูกเรียกใช้จากแบตช์ไฟล์ ยังstackoverflow.com/questions/14509652/ …
Vlastimil Ovčáčík

3
  • คัดลอกและบันทึกไปยังเดสก์ท็อปของคุณในชื่อvideoCardScript.ps1
  • คลิกเริ่มจากนั้นพิมพ์powershellแล้วกด Enter
  • พิมพ์cd ~\Desktopจากนั้นกด Enter
  • พิมพ์videoCardScript.ps1จากนั้นกด Enter
  • หมายเหตุ: หากคุณได้รับข้อผิดพลาดที่กล่าวถึง ... ไม่สามารถโหลดได้เนื่องจากสคริปต์ที่ใช้งานถูกปิดใช้งานในระบบนี้ คุณอาจจะต้องมีการเปลี่ยนแปลงนโยบายการดำเนินการของคุณด้วยคำสั่งต่อไปนี้ใน Set-ExecutionPolicy unrestrictedPowerShell:
  • **** ตรวจสอบให้แน่ใจว่าคุณใช้คำสั่งต่อไปนี้เมื่อเสร็จสิ้นเพื่อรักษาความปลอดภัยของระบบของคุณ: ** 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
    

หากคุณสนใจที่จะรับข้อมูลเพิ่มเติมคุณสามารถแสดงความคิดเห็นออกdel dxoutput.xmlคำสั่งโดยการเพิ่ม#ด้านหน้าของมัน จากนั้นคุณสามารถดูเนื้อหาของไฟล์ xml ที่บันทึกไว้บนเดสก์ท็อปของคุณและสามารถปรับเปลี่ยนได้ตามความเหมาะสม หากคุณต้องการลบข้อมูลบางอย่างในสคริปต์คุณสามารถแสดงความคิดเห็นออกบรรทัดที่เฉพาะเจาะจงเหล่านั้นหรือลบออกทั้งหมด

PS- คุณอาจเห็นการ์ดเดียวกันหลายใบ มีเหตุผลที่ฉันมีประเภทเอาท์พุทรวมอยู่ที่นี่: การ์ดจะแสดงทวีคูณตามจำนวนเอาต์พุตที่สามารถรองรับได้ ในกรณีของฉันเหมืองแสดง DVI (อธิบายตนเอง) และ HD15 (ซึ่งเป็น VGA)

PSS- ฉันใช้งานบนเครื่อง Windows 8 มีความเป็นไปได้ที่คุณอาจต้องติดตั้ง PowerShell บนเครื่อง XP พวกเขาจะต้องมี Service Pack 3 ติดตั้งแล้วคุณสามารถติดตั้ง Powershell ได้จากที่นี่: http://support.microsoft.com/kb/968929 (กรอบการจัดการ Windows (Windows PowerShell 2.0, WinRM 2.0 และ BITS 4.0))


1

คัดลอกรหัสนี้เป็น.VBSไฟล์และเรียกใช้ด้วย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

นี่คือผลลัพธ์ของแล็ปท็อป Dell ของฉัน:

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

0

ทำงานในพร้อมท์คำสั่ง:

wmic path win32_VideoController get /all /format:htable >> c:\VGA.html

3
โปรดอธิบายสิ่งที่คำสั่งทำ
Ramhound

คุณช่วยอธิบายได้ว่าโค้ดนี้ทำอะไรและจัดการกับปัญหาที่ได้รับจาก OP หรือไม่ รหัสที่ไม่ได้อธิบายสามารถปรากฏขึ้นไม่น่าเชื่อถือและเป็นอันตรายต่อผู้ใช้
bwDraco

รับข้อมูลการ์ดวิดีโอและบันทึกเป็นรูปแบบ html ใน C Drive ชื่อ vga.html
S.Alizadeh

คำสั่งนี้ใช้งานได้แม้ว่าคุณไม่จำเป็นต้องตั้งค่า (หรือไม่สามารถทำได้เนื่องจากไม่อนุญาต) c:\VGA.htmlผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ แต่เพียงเปลี่ยนเส้นทางไปที่VGA.htmlการถ่ายโอนข้อมูลไปยังผู้ใช้ dir ฉันเห็นด้วยว่ามันควรจะอธิบายถึงวัตถุประสงค์ในคำถามแทนการแสดงความคิดเห็นที่นี่
dhaupin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.