我是批量新手。 我的目的是编写一个读取文件中每一行的批处理,并依赖于读取的行执行一些不同的任务。这是一些示例
@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行时,我可以打印“这是一个新行”
非常感谢你的时间。
答案 0 :(得分:6)
您的帖子中有两个问题
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
)
)
有关详细信息,请参阅HELP SET
。
2.- FOR命令跳过空白行。尝试HELP FOR
并阅读“跳过空行”。
有一些复杂的解决方案涉及例如TYPE
和FIND
我会尽量避免,除非有必要。