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

时间:2014-04-07 21:26:41

标签: batch-file cmd

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

P.S。 =如果可以用纯批次完成,我会很高兴但不是必要的。

10/04/2014修改

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

2 个答案:

答案 0 :(得分:0)

您可以使用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 /?和其他人,因为其中有很多有用的信息,而且非常简洁。

答案 1 :(得分:0)

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