Board logo

标题: [文本处理] 批处理如何显示文本每行的第一个字符? [打印本页]

作者: netdzb    时间: 2019-8-15 21:56     标题: 批处理如何显示文本每行的第一个字符?

自己写的批处理还是不行
  1. REM 显示文本的第一个字符
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in (test.txt) do (
  5.     set aa=%%i:~0,1%
  6.     echo %aa%
  7. )
  8. pause
复制代码
test.txt内容如下:

PROJECT(Hello)
ADD_EXECUTABLE(Hello Hello.c)

希望得到运行结果是
P
A
作者: netdzb    时间: 2019-8-15 22:14

回复 1# netdzb

参考坛子里的代码,修改了一下,运行结果还是不对。

REM 显示文本的第一个字符
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
    set aa=%%i
    set bb=%aa:~0,1%
    echo %bb%
)
pause
作者: 窄口牛    时间: 2019-8-15 22:15

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
    set aa=%%i
    echo !aa:~,1!
)
pause
作者: Batcher    时间: 2019-8-15 22:16

回复 1# netdzb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (test.txt) do (
  4.     set aa=%%i
  5.     echo !aa:~0,1!
  6. )
  7. pause
复制代码

作者: netdzb    时间: 2019-8-15 22:39

回复 4# Batcher

谢谢,我也刚调通

我的代码也贴一下,好像写的比你的啰嗦。

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
    set a=%%i
    set tp=!a:~0,1!
    echo.!tp!
)
pause
作者: impk    时间: 2019-8-16 10:18

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ( test.txt ) do ( set a=%%i && echo !a:~0,1! )
  4. pause
复制代码

作者: lihui612ld    时间: 2019-8-17 21:24

回复 4# Batcher


    请问有没有对字符串操作这方面的教程啊,a:~0,1这个应该怎么理解啊
作者: hlzj88    时间: 2019-8-18 07:13

回复 7# lihui612ld
a:~0,1的理解 从0位置开始按顺序获得1个字符,即你要求的每行第一个字
a:~5,2的理解 从第5个字符位置开始按顺序获得2个字符。
作者: lihui612ld    时间: 2019-8-18 09:51

回复 8# hlzj88


    多谢回答,我懂了,谢谢
作者: Batcher    时间: 2019-8-18 17:10

回复 7# lihui612ld


看看set命令教程
http://bbs.bathome.net/thread-31727-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2