C ++,Java,JavaScript和其他可能的编程语言都有一个string函数,用于在string中search指定string模式中的任何字符。 例如,C ++的std::string::find_first_of
是这样工作的:
std::cout << "Vowel found in : " << "Search me for vowels".find_first_of("aeiou") << std::endl; // should print "Vowel found in : 1".
CMD中是否有相同的内容? 我试图search“DOSstring函数”,但似乎无法find任何东西。
可悲的是,你不解释为什么输出是“1”或“1”表示什么。
set "string=Search me for vowels" echo %string%|findstr /i "aeiou" >nul echo %errorlevel%
应该显示errorlevel
为0为“发现”和1为“未找到”。
该字符串被echo
作为findstr
输入。
/i
使比较不区分大小写。
>nul
抑制输出
"aeiou"
意思是“搜索其中的一个字符串”(空格分隔,5个字符串来定位)
当然,这是一个微不足道的例子。 findstr /?
从提示或搜索的例子就会给你更多的交易技巧。
没有直接的方法,但你可以很容易地写出你自己的。
搜索一个字符
@echo off call :charposition "Search me for vowels" a pos echo Found a at position %pos% goto :eof :charposition set "string_search=%~1" set /a char_pos=0 :charcheck IF %string_search:~0,1%==%2 ( endlocal & set "%3=%char_pos%" goto :eof ) set "string_search=%string_search:~1%" IF "%string_search%"=="" ( set "%3=Not Found" goto :eof ) set /a char_pos+=1 goto :charcheck
对于多个字符:
@echo off call :charposition "Search me for vowels" aeiou pos echo Found vowel at position %pos% goto :eof :charposition set "string_search=%~1" set /a char_pos=0 :charcheck echo %2|find "%string_search:~0,1%">nul IF %errorlevel%==0 ( endlocal & set "%3=%char_pos%" goto :eof ) set "string_search=%string_search:~1%" IF "%string_search%"=="" ( set "%3=Not Found" goto :eof ) set /a char_pos+=1 goto :charcheck
请参阅http://ss64.com/nt/syntax-substring.html获取提取子字符串的语法的解释。 如给出的,这些区分大小写。