有没有办法不在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 /?
和其他内容,因为其中有很多有用的信息,而且非常简洁。