String 批处理:确定从文件读取的行中是否存在子字符串

String 批处理:确定从文件读取的行中是否存在子字符串,string,file-io,batch-file,substring,String,File Io,Batch File,Substring,我是新来的。 我的目的是编写一个批处理,从文件中读取每一行,并根据读取的行执行一些不同的任务。这是一些样品 @echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq delims=" %%a in (test.txt) do ( echo %%a *if %%a contains abc do (other tasks)* ) 此外,我是否可以批量检测“换行符”??

我是新来的。 我的目的是编写一个批处理,从文件中读取每一行,并根据读取的行执行一些不同的任务。这是一些样品

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%a in (test.txt) do ( 
  echo %%a
  *if %%a contains abc do (other tasks)*           
)
此外,我是否可以批量检测“换行符”?? 如果test.txt看起来像:

123
345
abckdla

abd
abd
abc

test
当for循环位于test.txt的第4行和第8行时,我是否可以打印“这是一个新行”


非常感谢您的时间。

您的帖子中有两个问题

1.-检查变量是否包含子字符串

试试这个

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=*" %%a in (test.txt) do ( 
  set tst=%%a
  set tst=!tst:ab=!
  if not !tst!==%%a ( 
    echo %%a contains ab
  ) else (
    echo %%a does not contain ab
  )
)
有关详细信息,请参阅帮助集

2.-FOR命令跳过空行。请尝试
帮助以获取
并阅读“跳过空行”。
有一些复杂的解决方案,例如
类型
查找
,除非绝对必要,否则我会尽量避免

1.-检查变量是否包含子字符串

试试这个

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=*" %%a in (test.txt) do ( 
  set tst=%%a
  set tst=!tst:ab=!
  if not !tst!==%%a ( 
    echo %%a contains ab
  ) else (
    echo %%a does not contain ab
  )
)
有关详细信息,请参阅帮助集

2.-FOR命令跳过空行。请尝试
帮助以获取
并阅读“跳过空行”。 有一些复杂的解决方案,例如
类型
查找
我会尽量避免,除非绝对必要