批处理中用for指令从文件读取字符串时如何对字符串进行判断

如题所述

方法1:
用for
/f
读取文本后,将整行内容赋值给变量
然后判断变量的第一个字符,是否是指定字符
@echo
off&
setlocal
Enabledelayedexpansion
for
/f
"delims="
%%1
in
(D:\abc.txt)do
(set
wind=%%1
if
"!wind:~0,1!"=="C"
echo
%%1)
pause>nul
方法2:
先用findstr
去查找文本中以"C"
打头的行
然后用for
/f
去解析
显示出来
@echo
off&
for
/f
%%1
in
('findstr
"\<C"
D:\abc.txt')do
echo
%%1
pause>nul
方法3:
直接用findstr
去查找
\<C
意思是以
"C"打头的行
@findstr
"\<C"
D:\abc.txt
pause>nul
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-02
@echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
set
R=%%i
if
"!R:~0,1!"=="c"
echo
%%i
)
pause
这个判断时要区分大小写,不区分
if
加参数
/i
即为:
@echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
set
R=%%i
if
/i
"!R:~0,1!"=="c"
echo
%%i
)
pause
补充:
或显示以空格为分隔的所有单词中以‘c’开头的:
@echo
off&setlocal
Enabledelayedexpansion
for
/f
"delims="
%%i
in
(D:\abc.txt)
do
(
for
%%a
in
(%%i)
do
(
set
R=%%a
if
/i
"!R:~0,1!"=="c"
echo
%%a
))
pause
相似回答