繁体   English   中英

cmd.exe上的第一行/最后一行/列

[英]First/last line/columns on cmd.exe

有没有办法在cmd.exe上不使用第一行/最后一行/列? 我有一个包含超过150个字符的字符串变量。 我想在屏幕上打印,但不使用第一行/最后一行/列,并且我不想更改默认模式下的设置。

PS =如果可以用纯批处理完成,我会很高兴但不是必须的。

2014年10月4日编辑

我有一个包含超过150个字符的字符串变量。 如您所知,standart cmd.exe有80列。 我想开始从第1行到任何地方开始打印到屏幕,但不使用第1列和第80列。类似于创建“文本区域”

您可以使用for循环。

for /F "tokens=2-6* delims= " %%I in ("hey do you like batch files") DO (echo %%I %%J %%K %%L)

输出是...

C:\>for /F "tokens=2-6* delims= " %I in ("hey do you like batch files") DO (echo %I %J %K %L )

C:\>(echo do you like batch )
do you like batch

更改tokens以或多或少地跳过并包括更多列,但请确保将6更改为您拥有的“列”数。

更改delims以使用其他定界符作为列分隔符。

添加其他%%变量以显示更多列。

这适用于批处理和cmd文件,因此,如果要交互运行它,则需要将所有双精度%s更改为单精度。

作为学习练习的一部分,请阅读for /? set /? 以及其他内容,因为其中包含许多有用的信息,而且内容非常简洁。

set a=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa12345678bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb123456789cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc123456789dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

echo. %a:~0,78%&echo. %a:~78,78%&echo. %a:~156,78%&echo. %a:~234,78%

如有必要,请扩展。

编辑:或更优雅:

setlocal enabledelayedexpansion
for /l %%i in (0,78,1000) do echo. !a:~%%i,78!|findstr ".."

findstr只打印行数超过1个字符的行(每行至少应包含一个字符,即前导空格)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM