Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批量查找当前控制台大小_Batch File_Windows 10_Powershell - Fatal编程技术网

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