有没有办法不在cmd.exe上使用第一行/最后一行/列?我有一个包含150多个字符的字符串变量。我想在屏幕上打印,但不使用第一行/最后一行/列,我不想更改默认模式con设置。
P.S。 =如果可以用纯批次完成,我会很高兴但不是必要的。
10/04/2014修改
我有一个包含150多个字符的字符串变量。如您所知,标准cmd.exe 80列。我想开始从第1行打印到屏幕,但不要使用第1列和第80列。有点像创建"文本区"
答案 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个字符的行(每行至少有一个字符,即前导空格)