Axe*_*ine 6 windows console command-line cmd batch-file
如何在批处理文件中的环境变量中获取Windows控制台的当前宽度?
ica*_*bod 11
我喜欢mode在Windows中使用内置命令的方法.尝试以下批处理文件:
@echo off
for /F "usebackq tokens=2* delims=: " %%W in (`mode con ^| findstr Columns`) do set CONSOLE_WIDTH=%%W
echo Console is %CONSOLE_WIDTH% characters wide
Run Code Online (Sandbox Code Playgroud)
请注意,这将返回控制台缓冲区的大小,而不是窗口的大小(可滚动).
如果您想要Windows控制台的高度,可以Columns在findstr表达式中替换Lines.再次,它将返回缓冲区的高度,而不是窗口...我个人喜欢有一个大缓冲区允许滚动回历史记录,所以对我来说,线通常报告大约3000 :)
只是为了好玩,这里有一个不用于findstr过滤输出的版本......万一(出于某种原因)你不喜欢findstr:
@echo off
for /F "usebackq tokens=1,2* delims=: " %%V in (`mode con`) do (
if .%%V==.Columns (
set CONSOLE_WIDTH=%%W
goto done
)
)
:done
echo Console is %CONSOLE_WIDTH% characters wide
Run Code Online (Sandbox Code Playgroud)
请注意,这在Windows XP SP3中尝试过,在许多不同的窗口中(包括一个执行FAR管理器).
小智 5
试试这个(语言/区域设置/.net 独立):
@ECHO OFF
SET "ConsoleWidth="
SET /A LINECOUNT=0
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "tokens=1,2,*" %%A IN ('mode con') DO (SET /A LINECOUNT=!LINECOUNT!+1&IF !LINECOUNT! EQU 4 SET ConsoleWidth=%%B)
SETLOCAL DISABLEDELAYEDEXPANSION
SET "LINECOUNT="
ECHO ConsoleWidth: %ConsoleWidth% characters
Run Code Online (Sandbox Code Playgroud)
在 Windows XP 和 Windows 7 上进行了测试,均为捷克语
| 归档时间: |
|
| 查看次数: |
3027 次 |
| 最近记录: |