如何使用Windows命令行查找文件是否包含给定字符串

Jai*_*Jai 17 windows cmd batch-file

我正在尝试为Windows XP创建一个批处理(.bat)文件来执行以下操作:

If (file.txt contains the string 'searchString') then (ECHO found it!) 
ELSE(ECHO not found)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经找到了一种方法,使用FIND命令搜索文件中的字符串,该命令返回文件中找到字符串的行,但无法对其进行条件检查.

例如,这不起作用.

IF FIND "searchString" file.txt ECHO found it!
Run Code Online (Sandbox Code Playgroud)

这也不是:

IF FIND "searchString" file.txt=='' ECHO not found
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的任何想法?

Mik*_*e Q 12

来自其他帖子:

    find /c "string" file
    if %errorlevel% equ 1 goto notfound
    echo found
    goto done
    :notfound
    echo notfound
    goto done
    :done
Run Code Online (Sandbox Code Playgroud)

或类似:如果没有找到写入文件.

    find /c "%%P" file.txt  || ( echo %%P >> newfile.txt )
Run Code Online (Sandbox Code Playgroud)

或类似:如果找到写入文件.

    find /c "%%P" file.txt  && ( echo %%P >> newfile.txt )
Run Code Online (Sandbox Code Playgroud)

或类似的东西:

    find /c "%%P" file.txt  && ( echo found ) || ( echo not found )
Run Code Online (Sandbox Code Playgroud)

  • 使用:"> nul 2>&1"来压缩输出"find/c"%% P"file.txt> nul 2>&1 ...... (3认同)

小智 5

我已经使用DOS命令行来做到这一点。实际上有两行。第一个将“当前目录”设置为文件所在的文件夹-或文件所在的一组文件夹的根文件夹。第二行进行搜索。

CD C:\TheFolder
C:\TheFolder>FINDSTR /L /S /I /N /C:"TheString" *.PRG
Run Code Online (Sandbox Code Playgroud)

您可以在此链接中找到有关参数的详细信息。

希望能帮助到你!