Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 查找string1和string2的bat文件_Batch File_Findstr - Fatal编程技术网

Batch file 查找string1和string2的bat文件

Batch file 查找string1和string2的bat文件,batch-file,findstr,Batch File,Findstr,我正在尝试做以下工作:搜索Temp中以“Micro”开头的所有txt文件,并查找其中是否存在以下两个字符串。我需要在一个文件中找到这两个字符串 目前我有:在这里输入code @echo off cd C:\Users\ADMINI~1\AppData\Local\Temp findstr /N /C:"action: Uninstall" /C:"Exit code: 0x0, restarting: No" Micro*.log >results.txt if %errorlevel%=

我正在尝试做以下工作:搜索Temp中以“Micro”开头的所有txt文件,并查找其中是否存在以下两个字符串。我需要在一个文件中找到这两个字符串

目前我有:
在这里输入code

@echo off
cd C:\Users\ADMINI~1\AppData\Local\Temp
findstr /N /C:"action: Uninstall" /C:"Exit code: 0x0, restarting: No" Micro*.log >results.txt
if %errorlevel%==1 (
robocopy C:\Users\ADMINI~1\AppData\Local\Temp C:\Users\Administrator\Desktop results.txt
) else (
echo matches found
)
但这是使用OR。我发现我需要为和使用。*,但以下简单方法不起作用:

findstr /N /C:"action: Uninstall".*/C:"Exit code: 0x0, restarting: No" Micro*.log
不知道我做错了什么/

干杯, 格里

获取包含第一个字符串的文件列表,并使用此列表搜索第二个字符串

获取包含第一个字符串的文件列表,并使用此列表搜索第二个字符串

获取包含第一个字符串的文件列表,并使用此列表搜索第二个字符串



获取包含第一个字符串的文件列表,并使用此列表搜索第二个字符串。

对不起,不是所有的txt,而是所有的.log文件。对不起,不是所有的txt,而是所有的.log文件。对不起,不是所有的txt,而是所有的.log文件。对不起,不是所有的txt,而是所有的.log文件。这样行吗?第一个findstr不会只是将它找到的管线输送到第二个findstr。这意味着第二个findstr永远不会匹配,因为它只查看第一个findstr的结果。不确定为什么。。。但它不起作用。我应该在第二个字符串的末尾再次声明Micro*.log吗?我得到了以下信息:>findstr/N/C:“操作:卸载”Micro*.lo g | findstr/C:“退出代码:0x0,重新启动:No”1>results.txt C:\Users\ADMINI~1\AppData\Local\Temp>if 1==1(roboccopy C:\Users\ADMINI~1\AppDa ta\Local\Temp C:\Users\Administrator\Desktop results.txt)否则(echo matches f found)我基本上需要在一个文件中找到这两个字符串。如果我找不到他们中的任何一个,我会处理的。但我的通行证是“我两者都找到了”。如果一个或两个不匹配,我将有一个失败。我需要寻找准确的字符串…:/您可以对每个单独的
findstr
进行一些测试:测试第一个并检查结果,然后将该结果重定向到一个文件,并使用该文件测试第二个
findstr
,这样行吗?第一个findstr不会只是将它找到的管线输送到第二个findstr。这意味着第二个findstr永远不会匹配,因为它只查看第一个findstr的结果。不确定为什么。。。但它不起作用。我应该在第二个字符串的末尾再次声明Micro*.log吗?我得到了以下信息:>findstr/N/C:“操作:卸载”Micro*.lo g | findstr/C:“退出代码:0x0,重新启动:No”1>results.txt C:\Users\ADMINI~1\AppData\Local\Temp>if 1==1(roboccopy C:\Users\ADMINI~1\AppDa ta\Local\Temp C:\Users\Administrator\Desktop results.txt)否则(echo matches f found)我基本上需要在一个文件中找到这两个字符串。如果我找不到他们中的任何一个,我会处理的。但我的通行证是“我两者都找到了”。如果一个或两个不匹配,我将有一个失败。我需要寻找准确的字符串…:/您可以对每个单独的
findstr
进行一些测试:测试第一个并检查结果,然后将该结果重定向到一个文件,并使用该文件测试第二个
findstr
,这样行吗?第一个findstr不会只是将它找到的管线输送到第二个findstr。这意味着第二个findstr永远不会匹配,因为它只查看第一个findstr的结果。不确定为什么。。。但它不起作用。我应该在第二个字符串的末尾再次声明Micro*.log吗?我得到了以下信息:>findstr/N/C:“操作:卸载”Micro*.lo g | findstr/C:“退出代码:0x0,重新启动:No”1>results.txt C:\Users\ADMINI~1\AppData\Local\Temp>if 1==1(roboccopy C:\Users\ADMINI~1\AppDa ta\Local\Temp C:\Users\Administrator\Desktop results.txt)否则(echo matches f found)我基本上需要在一个文件中找到这两个字符串。如果我找不到他们中的任何一个,我会处理的。但我的通行证是“我两者都找到了”。如果一个或两个不匹配,我将有一个失败。我需要寻找准确的字符串…:/您可以对每个单独的
findstr
进行一些测试:测试第一个并检查结果,然后将该结果重定向到一个文件,并使用该文件测试第二个
findstr
,这样行吗?第一个findstr不会只是将它找到的管线输送到第二个findstr。这意味着第二个findstr永远不会匹配,因为它只查看第一个findstr的结果。不确定为什么。。。但它不起作用。我应该在第二个字符串的末尾再次声明Micro*.log吗?我得到了以下信息:>findstr/N/C:“操作:卸载”Micro*.lo g | findstr/C:“退出代码:0x0,重新启动:No”1>results.txt C:\Users\ADMINI~1\AppData\Local\Temp>if 1==1(roboccopy C:\Users\ADMINI~1\AppDa ta\Local\Temp C:\Users\Administrator\Desktop results.txt)否则(echo matches f found)我基本上需要在一个文件中找到这两个字符串。如果我找不到他们中的任何一个,我会处理的。但我的通行证是“我两者都找到了”。如果一个或两个不匹配,我将有一个失败。我需要寻找准确的字符串…:/您可以对每个单独的
findstr
进行一些测试:测试第一个并检查结果,然后将结果重定向到一个文件,并使用该文件测试第二个
findstr
。。。
for /F "delims=" %%a in ('findstr /M /C:"action: Uninstall" Micro*.log') do (
   findstr /N /C:"Exit code: 0x0, restarting: No" "%%a"
)
set "string1=action: Uninstall"
set "string2=Exit code: 0x0, restarting: No"
set "files=C:\Users\ADMINI~1\AppData\Local\Temp\Micro*.log"

findstr /m /c:"%string1%" "%files%" | findstr /f:/ /m /c:"%string2%"