批处理文件 - cmd.exe 上的第一行/最后一行/列



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

附言=如果可以用纯批次完成,我会很高兴,但不是必需的。

10/04/2014 编辑

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

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 个字符的行(每行至少有一个字符,即前导空格)

您可以使用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文件,因此如果要以交互方式运行它,则需要将所有双%更改为单。

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

最新更新