Batch file 批量查找当前控制台大小
我正在处理批处理文件,需要在屏幕上打印连字符(-)作为分隔符。是否有一个快速(不到两秒)命令可以执行此操作 我做了多次搜索查询,但在各个网站上都找不到答案Batch file 批量查找当前控制台大小,batch-file,windows-10,powershell,Batch File,Windows 10,Powershell,我正在处理批处理文件,需要在屏幕上打印连字符(-)作为分隔符。是否有一个快速(不到两秒)命令可以执行此操作 我做了多次搜索查询,但在各个网站上都找不到答案 (code to find screen size) for /l %%a in (1,1,%screen size var%) do (set "line=%line%-") echo %line% 输出应在控制台上显示一行连字符。如果您可以使用批处理命令检索列值,则可以使用MODE命令的输出 MODE CON 这是未经测
(code to find screen size)
for /l %%a in (1,1,%screen size var%) do (set "line=%line%-")
echo %line%
输出应在控制台上显示一行连字符。如果您可以使用批处理命令检索
列
值,则可以使用MODE命令的输出
MODE CON
这是未经测试的,但基于的回答中使用的
模式CON
的输出:
@Echo关闭
对于/F“Skip=4Tokens=1*Delims=:”%A In('Mode CON')Do(对于/L%%C In(1,1,%%B)Do@Set/P“=-”我建议您使用以下代码:
@echo off
setlocal EnableDelayedExpansion
for /F "skip=4 tokens=2" %%A IN ('mode CON') do (
for /L %%B IN (1 1 %%A) do set "hyphen=!hyphen!-"
echo !hyphen!
goto :subroutine
)
:subroutine
echo You may continue here
pause
这有点复杂,但应该做你想做的
代码在模式CON
的命令输出中搜索列,并相应地将这些列添加到连字符
变量中。请参见谢谢,但我希望能够将输出保存到变量并在screen@FrederickReynolds,看看……你的回答“真的”与我的延迟体验有什么不同ansion版本?@Compo除了它被扩展外,你是否看到了/F
的条件?我认为它们与你的答案不同,不是吗?我的答案在你的答案发布之前就已经写好并被接受了。在这种情况下,一位负责的成员会建议对现有的答案做一些小的改进,如果它被同意为改进。我可以说我的更好,你可能会认为你的更容易看,但是,除了你使用了不同的分隔符,它们本质上是相同的答案,你发布它没有任何意义。只是为了继续你毫无意义的论证,我使用了:
分隔符,因为不管怎样在需要模式CON
输出的哪一行中,只有跳过
号需要调整,在您的代码中,修饰符需要同时调整跳过
和标记的数量
。我的示例显示了如何调整代码,以便在不影响u下面的sers代码,你的没有。我的确保任何预定义变量都不会影响连字符行,你的不会,为了完整起见,我还包括了另外两个例子!最后,因为你认为我的论点毫无意义,所以我们的答案没有差异=>我的是剽窃,那么请升起一个自定义的mod标志,这样版主就可以查看它并告诉它是否如我上面提到的那样。
@Echo Off&SetLocal EnableDelayedExpansion&Set "separator="
For /F "Skip=4Tokens=1*Delims=:" %%A In ('Mode CON')Do (For /L %%C In (1,1,%%B)Do Set "separator=!separator!-")&GoTo :Next
:Next
Rem Uncomment the next line if you don't want to use delayed expansion in the rest of the script
::EndLocal&Set "separator=%separator%"
Rem Your code goes here
Echo Welcome to %~nx0
Echo %separator%
Pause
@echo off
setlocal EnableDelayedExpansion
for /F "skip=4 tokens=2" %%A IN ('mode CON') do (
for /L %%B IN (1 1 %%A) do set "hyphen=!hyphen!-"
echo !hyphen!
goto :subroutine
)
:subroutine
echo You may continue here
pause