উইন্ডোজ কমান্ড লাইন থেকে ডিসপ্লে রেজোলিউশন পান


19

কমান্ড লাইন থেকে রেজোলিউশনটি পরিবর্তন করতে প্রোগ্রাম সম্পর্কে বেশ কয়েকটি পরামর্শ দেখেছি। তবে আমি এটি প্রদর্শন করতে চাই, এটি পরিবর্তন করতে চাই না।

লিনাক্সে আমি এই তথ্যটি ব্যবহার করতে xrandrবা xdpyinfoপেতে পারি, তাই আমি এরকম কিছু খুঁজছি।

সাইগউইন শেলের মধ্যেও কাজ করা আমার দরকার।


2
দ্রষ্টব্য: কারও আগ্রহী থাকলে এখানে পাওয়ারশেল সংস্করণও উপলব্ধ। স্ট্যাকওভারফ্লোতে তারা মাল্টিমনিটর সমস্যাটিও সমাধান করেছে
নিক্সদা

উত্তর:


20

এটা চেষ্টা কর:

wmic desktopmonitor get screenheight, screenwidth

সাইগউইনের মধ্যে থেকে:

cmd /c wmic desktopmonitor get screenheight, screenwidth

আউটপুটটি ব্যবহার করার জন্য কোন কৌশলগুলি ব্যবহার করতে হবে তা আমি নিশ্চিত নই। সম্ভবত একটি অস্থায়ী পাঠ্য ফাইল?


হ্যাঁ ধন্যবাদ এটি cmd.exe থেকে কাজ করে। তবে আমি এটি উল্লেখ করতে ভুলে গেছি যে সাইগউইন শেলের ভিতরে কাজ করার জন্য আমার এটি প্রয়োজন এবং ডাব্লিমিআই সেখানে কাজ করবে বলে মনে হয় না।
জিট্রাক্স

1
@ জিত্রাক্স: এখন আপনি আমাকে বলুন।
প্যারাড্রয়েড

আবার ধন্যবাদ. যদিও rdesktop এর সাথে সংযোগ করার সময় এটি কার্যকর হয়নি (বা সাইগউইনের মধ্যে ssh) যদিও। এই সমস্ত পরিস্থিতিতে এটি দুর্দান্ত ছিল।
জিট্রাক্স

2
Win8.1 বা win10 এ কাজ করে না। এটি স্ক্রিন হাইট এবং স্ক্রিনউইথ উভয়ের জন্য খালি ফলাফল দেয়।
ডেভিড বালেক 18

1
@ অ্যাপারড্রয়েড এটি কার্যকর হয় না, যেমনটি অন্য উত্তরে
ডেভিড বালেক

10

সঙ্গে dxdiag যদিও এটা দ্রুততম উপায় নয়:

@echo off

del ~.txt /q /f >nul 2>nul
start "" /w dxdiag /t ~
setlocal enableDelayedExpansion
set currmon=1 
for /f "tokens=2 delims=:" %%a in ('find "Current Mode:" ~.txt') do (
    echo Monitor !currmon! : %%a
    set /a currmon=currmon+1

)
endlocal
del ~.txt /q /f >nul 2>nul

এটি সমস্ত মনিটরের রেজোলিউশন মুদ্রণ করবে।

সম্পাদনা করুন । গৃহীত উত্তর WMIC ব্যবহার করে। ( wmic desktopmonitor get screenheight, screenwidth /format:value) .এটি উইন্ডোজ 8 / 8.1 / 10 এ কাজ করবে না। নতুন উইন্ডোজ সংস্করণগুলির জন্য এটি ব্যবহার করা যেতে পারে:

wmic path Win32_VideoController get VideoModeDescription,CurrentVerticalResolution,CurrentHorizontalResolution /format:value

একটি স্ক্রিপ্ট যা উইন্ডোজ সংস্করণটি পরীক্ষা করে এবং তারপরে ডাব্লিমিটির সাথে রেজোলিউশন পায়:

@echo off

setlocal
for /f "tokens=4,5 delims=. " %%a in ('ver') do set "version=%%a%%b"


if version lss 62 (
    ::set "wmic_query=wmic desktopmonitor get screenheight, screenwidth /format:value"
    for /f "tokens=* delims=" %%@ in ('wmic desktopmonitor get screenwidth /format:value') do (
        for /f "tokens=2 delims==" %%# in ("%%@") do set "x=%%#"
    )
    for /f "tokens=* delims=" %%@ in ('wmic desktopmonitor get screenheight /format:value') do (
        for /f "tokens=2 delims==" %%# in ("%%@") do set "y=%%#"
    )

) else (
    ::wmic path Win32_VideoController get VideoModeDescription,CurrentVerticalResolution,CurrentHorizontalResolution /format:value
    for /f "tokens=* delims=" %%@ in ('wmic path Win32_VideoController get CurrentHorizontalResolution  /format:value') do (
        for /f "tokens=2 delims==" %%# in ("%%@") do set "x=%%#"
    )
    for /f "tokens=* delims=" %%@ in ('wmic path Win32_VideoController get CurrentVerticalResolution /format:value') do (
        for /f "tokens=2 delims==" %%# in ("%%@") do set "y=%%#"
    )

)

echo Resolution %x%x%y%

endlocal

2

আপনাকে ধন্যবাদ @ পেপারড্রয়েড :) ডাব্লুএমআইসি দিয়ে আমি ব্যাচ স্ক্রিপ্টটি রিমোট ডেস্কটপটিতে পূর্ণ স্ক্রিন নয় তবে এখনও সুবিধাজনক হিসাবে লিখেছি। ^: _ ^

@echo off
:p00
setlocal
if "%1"=="" goto :q01
set i01=wmic desktopmonitor
set i01=%i01% where availability^=3
set i01=%i01% get screenHeight,screenWidth
set o01=%temp%\ScrRes.txt
%i01%>"%o01%"
for /f "delims= skip=1" %%o in ('type %o01%') do call :p01 %1 %%o
goto :p99

:p01
set srvnm=%1
set /a tl=%2-40
set /a ll=%3-80
start mstsc /admin /w:%ll% /h:%tl% /v:%srvnm%
goto :eof

:q01
echo.
echo ^>^> Syntax: %0 MachineHostname [enter]
echo.

:p99
if exist "%o01%" del "%o01%" /f /q
echo.
echo ^>^> Sincerely Thank You For Using..
endlocal
goto :eof

নির্দ্বিধায় নির্দ্বিধায়। উত্সাহ বোধ করতে। (Y)



1

পুরাতন উত্তরগুলি আর কাজ করবে বলে মনে হয় না (win7 64 বিট); আমি সেভাবে সমাধান করেছি

FOR /f "tokens=1,2" %%a IN ('"wmic desktopmonitor get screenheight, screenwidth"') DO (
    SET /a ScreenHeight=%%a
    SET /a ScreenWidth=%%b
)
echo %ScreenHeight%
echo %ScreenWidth%

1

একাধিক মনিটর সেটআপের জন্য কেবল কমান্ডটি বিভক্ত করুন:

setlocal ENABLEDELAYEDEXPANSION
setlocal ENABLEEXTENSIONS
set wmicheight="wmic desktopmonitor get screenheight /format:value"
set wmicwidth="wmic desktopmonitor get screenwidth /format:value"
:height
for /f "tokens=2 delims==" %%a in ('%wmicheight%') do (
    If %%a LEQ 1 (
        rem skip if height is not bigger than 1
    ) Else (
        rem take the first height value larger than 1
        rem then skip to width
        Set /a "height=%%a"
        goto :width
    )
)
:width
for /f "tokens=2 delims==" %%a in ('%wmicwidth%') do (
    If %%a LEQ 1 (
        rem skip if width is not bigger than 1
    ) Else (
        rem add width found to get total width of all screens
        Set /a "width=width+%%a"
    )
)
echo %width% x %height%

কোড ব্লক ব্যবহার করুন। মার্কডাউন কীভাবে কাজ করে এবং কীভাবে এটি পঠনযোগ্য দেখতে বানাতে হয় তা জানতে আপনি এখানে যথেষ্ট দীর্ঘ সদস্য ছিলেন।
করণ

1

সহজ উপায়:

@echo off
::By SachaDee 2018

FOR /F "skip=2 delims=" %%a IN ('wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVerticalResolution /format:Value ^| findstr ":"') do set %%a

echo Width =^> %CurrentHorizontalResolution%
echo Height =^> %CurrentVerticalResolution%
echo Description =^> %VideoModeDescription%

আপনি এখানে কি ঘটছে তার আরও কিছুটা ব্যাখ্যা দিতে পারেন? আমি বুঝতে পারি যে /format:Valueফলাফলগুলি var = মান ফর্মের ফলাফল দেয় যা পরে setকমান্ডে ব্যবহৃত হয় । আপনি যদি কেবল একটি মান চান তবে লুপ ছাড়া এটি করার কোনও উপায় আছে কি?
কাইল ডেলানি

আপনি যদি প্রয়োজনীয় মানটি প্রদর্শন করতে চান তবে আপনি অবশ্যই মানটি প্রদর্শন করতে wmicডান প্যারামিটারগুলি সহ একা একটি ক্যোয়ারী চালাতে পারবেন । forলুপ করার জন্য এখানে ব্যবহার করা হয় setকোডে একটি পরে ব্যবহার করার জন্য মান। batবাহ্যিক কমান্ড ব্যবহার করার ক্ষেত্রে এটি করার একমাত্র উপায় ( wmic.exeএই ক্ষেত্রে)।
সাচাডি

আপনি লুপ ছাড়া একটি ফলাফল setসঙ্গে ব্যবহার করতে পারবেন না wmic?
কাইল ডেলানিতে

না এটা সম্ভব না!
সাচাডি

0

এটি আমার চেষ্টা:

@echo off
Mode 45,3 & color 0A
Title Dislpay Resolution by Hackoo 2018
Set "WMIC_Command=wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVerticalResolution /format:Value"
Set "H=CurrentHorizontalResolution"
Set "V=CurrentVerticalResolution"
Call :GetResolution %H% HorizontalResolution
Call :GetResolution %V% VerticalResolution
echo(
echo     Screen Resolution is : %HorizontalResolution% x %VerticalResolution%
pause>nul & Exit
::****************************************************
:GetResolution 
FOR /F "tokens=2 delims==" %%I IN (
  '%WMIC_Command% ^| find /I "%~1" 2^>^nul'
) DO FOR /F "delims=" %%A IN ("%%I") DO SET "%2=%%A"
Exit /b
::****************************************************
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.