我是批处理脚本的新手,我想知道如何将数字(不是行号)例如 1、2、3 匹配到文本文件(a.txt)。
如果任何其他号码匹配,它应该提醒我,如果它匹配我正在寻找的号码,那么它应该打印成功。
有什么建议或帮助吗?我尝试了 findstr 和 if 条件,但我无法解决,正如我所说的我是新手,所以请帮助我
谢谢哈里
我是批处理脚本的新手,我想知道如何将数字(不是行号)例如 1、2、3 匹配到文本文件(a.txt)。
如果任何其他号码匹配,它应该提醒我,如果它匹配我正在寻找的号码,那么它应该打印成功。
有什么建议或帮助吗?我尝试了 findstr 和 if 条件,但我无法解决,正如我所说的我是新手,所以请帮助我
谢谢哈里
我不太明白这里要说什么,但我认为作者试图找出以下内容:
Echo
文件姓名 ?setlocal enabledelayedexpansion
setlocal enableextensions
set file=Ok
set target=a.txt
for /f "delims=, tokens=1-3" %%a in (%target%) do (
call :Check %%a %%b %%c
)
:Check
if exist %1 (
if %1 neq 1 if %1 neq 2 if %1 neq 3 (set file=Alert
) else (shift /1)
goto :Check
) else (goto :report)
goto :eof
:report
if %file% equ Alert echo %target% does not match
if %file% equ Ok (
echo %target% is fine
Rem ! ! ! Add what you want to do to file here
)
好的,所以这只有在文件只有 1 行时才有效。它可能需要调整,因为我不确定它是否会起作用(告诉我它是否不起作用)。几乎,它说tokens=1-3
,这就是系列的长度。call :Check %%a %%b %%c
是实现每一个,所以如果系列中有 4 个,这些将变为tokens=1-4
, call :Check %%a %%b %%c %%d
。
最后在该:check
过程中,if %1 neq 1 if %1 neq 2 if %1 neq 3
包括您希望该系列包含的数字,(注意它不检查订单)。所以如果你想 ed 包括 4 它会是if %1 neq 1 if %1 neq 2 if %1 neq 3 if %1 neq 4
.
同样,我不确定这是否可以使用,因为我还没有测试过,如果有人想建议更改或告诉我如何随意修复它。如果它的概念是错误的(我相信它不是)告诉我,我会删除这个答案。