标题: [文本处理] 批处理如何获取屏幕/显示器当前的分辨率并修改指定ini文件里的相关参数值? [打印本页]
作者: houxiren 时间: 2016-6-15 03:01 标题: 批处理如何获取屏幕/显示器当前的分辨率并修改指定ini文件里的相关参数值?
本帖最后由 pcl_test 于 2016-6-15 10:02 编辑
根据电脑分辨率修改xn.ini文件,然后运行同目录下的xm.exe软件.
比如当前分辨率是1920*1080,则修改为
[Video]
ScreenWidth=1920
ScreenHeight=1080
如果换台电脑运行,分辨率为1366*788,则修改为
[Video]
ScreenWidth=1366
ScreenHeight=788
谢谢坛友相助!
作者: GNU 时间: 2016-6-15 10:18
- @echo off
- for /f "delims=" %%i in ('wmic DesktopMonitor get ScreenWidth^,ScreenHeight /value ^| findstr "="') do (
- set "%%i"
- )
- >xn.ini echo [Video]
- >>xn.ini echo ScreenWidth=%ScreenWidth%
- >>xn.ini echo ScreenHeight=%ScreenHeight%
- start "" "%~dp0xm.exe"
复制代码
作者: GNU 时间: 2016-6-15 10:32
- @echo off
- for /f "tokens=1,3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo" /s') do (
- if "%%i" equ "DefaultSettings.XResolution" (
- set /a ScreenWidth=%%j
- ) else (
- if "%%i" equ "DefaultSettings.YResolution" (
- set /a ScreenHeight=%%j
- )
- )
- )
- >xn.ini echo [Video]
- >>xn.ini echo ScreenWidth=%ScreenWidth%
- >>xn.ini echo ScreenHeight=%ScreenHeight%
- start "" "%~dp0xm.exe"
复制代码
作者: houxiren 时间: 2016-6-15 17:12
回复 3# GNU
谢谢您的回复。期待您的再次帮助。
用2楼的代码,能修改成功。但却把xn.ini文件中的其他所有内容都删除了,这样不行。
用3楼的代码,修改不成功,运行软件成功。
作者: 小程936 时间: 2016-6-17 22:18
本帖最后由 小程936 于 2016-6-17 23:35 编辑
- @echo off&set xn=xn.ini
- IF not EXIST %xn% echo 错误:找不到文件%xn%&pause>nul&exit
- for /f "delims=" %%i in ('wmic DesktopMonitor get ScreenWidth^,ScreenHeight /value ^| findstr "="') do set "%%i"
- >%xn%.1 (for /f "tokens=1* delims==" %%a in (%xn%) do (if "%%a" == "ScreenWidth" (echo+ScreenWidth=%ScreenWidth%) else (if "%%a" == "ScreenHeight" (echo+ScreenHeight=%ScreenHeight%) else (if "%%b" == "" (echo+%%a) else (echo+%%a=%%b)))))
- (del %xn%)&ren %xn%.1 %xn%
- echo start "" "%~dp0xm.exe"
复制代码
自动检测xn.ini是否存在,若不存在报错并退出
自动分析xn.ini文件并修改文件内容
本楼代码有一点小问题
第一个等于号右边为空白时=
输出
第一个等于号右边为空白时
删掉了第一个等于号。
楼下代码已修复此问题。
作者: 小程936 时间: 2016-6-17 22:54
本帖最后由 小程936 于 2016-6-17 23:31 编辑
- @echo off&set xn=xn.ini
- IF not EXIST %xn% echo 错误:找不到文件%xn%&pause>nul&exit
- for /f "delims=" %%i in ('wmic DesktopMonitor get ScreenWidth^,ScreenHeight /value ^| findstr "="') do set "%%i"
- for /f "delims=" %%z in (%xn%) do (set az=%%z)&call :小程936
- (del %xn%)&ren %xn%.1 %xn%
- start "" "%~dp0xm.exe"
- exit
- :小程936
- for /f "tokens=1 delims==" %%a in ("%az%") do (set aa=%%a)
- >>%xn%.1 (if "%aa%" == "ScreenWidth" (echo+ScreenWidth=%ScreenWidth%)&goto :eof
- if "%aa%" == "ScreenHeight" (echo+ScreenHeight=%ScreenHeight%)&goto :eof
- (echo+%az%)&goto :eof)
复制代码
自动检测xn.ini是否存在,若不存在报错并退出
自动分析xn.ini文件并修改文件内容
该版本相对上一版本便于理解且更稳定
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |