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
Batch file 批处理文件以搜索两个文本文件中的公共字符串_Batch File_Cmd - Fatal编程技术网

Batch file 批处理文件以搜索两个文本文件中的公共字符串

Batch file 批处理文件以搜索两个文本文件中的公共字符串,batch-file,cmd,Batch File,Cmd,我有两个文本文件,all_codes.txt和download_codes.txt我想比较这两个文本文件,并记录download_codes.txt中是否缺少任何字符串 >所有_codes.txt都将包含以下字符串 A1 A2 A3 A1 A3 >下载的_code.txt将包含以下字符串 A1 A2 A3 A1 A3 在本例中,下载的_codes.txt中缺少A2,因此我想在log.txt中记录“否” 如果A2出现在下载的代码中,那么我想在日志中记录“是” 这是我尝试过的,但没有得到正确

我有两个文本文件,all_codes.txtdownload_codes.txt我想比较这两个文本文件,并记录download_codes.txt中是否缺少任何字符串

>所有_codes.txt都将包含以下字符串

A1
A2
A3
A1
A3
>下载的_code.txt将包含以下字符串

A1
A2
A3
A1
A3
在本例中,下载的_codes.txt中缺少A2,因此我想在log.txt中记录“否” 如果A2出现在下载的代码中,那么我想在日志中记录“是”

这是我尝试过的,但没有得到正确的结果:

@echo关闭
延迟扩展
对于(All_codes.txt)中的/f“delims=~”%%h,请执行以下操作
对于%%a in(下载的_codes.txt),请执行以下操作(
set found=false
对于('findstr/i“%%h”“%%a”中的/f“skip=2令牌=*”%%b,请执行以下操作(
如果“!found!”==“false”((echo YES>log.txt
其他(echo NO>log.txt)
set found=true
))
)
编辑:这是一个示例会话:

C:\> type test.bat
@echo off

findstr /V /G:Downloaded_codes.txt all_codes.txt > NUL
(if errorlevel 1 (echo YES) else echo NO)

C:\> type all_codes.txt
A1
A2
A3

C:\> type Downloaded_codes.txt
A1

C:\> test
NO

C:\> echo A3>> Downloaded_codes.txt

C:\> type Downloaded_codes.txt
A1
A3

C:\> test
NO

C:\> echo A2>> Downloaded_codes.txt

C:\> type Downloaded_codes.txt
A1
A3
A2

C:\> test
YES
编辑:这是一个示例会话:

C:\> type test.bat
@echo off

findstr /V /G:Downloaded_codes.txt all_codes.txt > NUL
(if errorlevel 1 (echo YES) else echo NO)

C:\> type all_codes.txt
A1
A2
A3

C:\> type Downloaded_codes.txt
A1

C:\> test
NO

C:\> echo A3>> Downloaded_codes.txt

C:\> type Downloaded_codes.txt
A1
A3

C:\> test
NO

C:\> echo A2>> Downloaded_codes.txt

C:\> type Downloaded_codes.txt
A1
A3
A2

C:\> test
YES


你有一个非常有创意的语法。但是我恐怕,
cmd
不同意。这段代码只会产生语法错误。Stehpan没问题!不仅有意外的空格,还有缺少的大括号(第四行我希望在“do”之后有一个“(”)还有大括号…我也不确定你重定向到log.txt的方式是否符合你的要求。每次一个>都会重新创建该文件。删除该文件一次,然后使用>>附加。空格是在我粘贴问题中的代码时出现的,批处理文件中没有空格。@dlano我希望每次都重新创建日志文件。你考虑过使用
com吗m
来自unix utils?@PA。不,我没有试过。你的语法非常有创意。但我恐怕,
cmd
不同意。这段代码只会产生语法错误。Stehpan没问题!不仅有意外的空格,而且缺少大括号(第四行我希望在“do”之后有一个“(”)还有大括号…我也不确定你重定向到log.txt的方式是否符合你的要求。每次一个>都会重新创建该文件。删除该文件一次,然后使用>>附加。空格是在我粘贴问题中的代码时出现的,批处理文件中没有空格。@dlano我希望每次都重新创建日志文件。你考虑过使用
com吗m
来自unix utils?@PA。不,我没有试过。你的语法非常有创意。但我恐怕,
cmd
不同意。这段代码只会产生语法错误。Stehpan没问题!不仅有意外的空格,而且缺少大括号(第四行我希望在“do”之后有一个“(”)还有大括号…我也不确定你重定向到log.txt的方式是否符合你的要求。每次一个>都会重新创建该文件。删除该文件一次,然后使用>>附加。空格是在我粘贴问题中的代码时出现的,批处理文件中没有空格。@dlano我希望每次都重新创建日志文件。你考虑过使用
com吗m
来自unix utils?@PA。不,我没有尝试过。嗨,Aacini,我尝试过你的代码,它会创建带有“YES”的日志,即使在“downloaded_codes.txt”中找不到某些字符串。请参阅我答案中的编辑。请尝试复制我的示例会话,然后更详细地解释问题所在…嗨,Aacini,我尝试了你的代码,它创建了带有“是”的日志,即使在“downloaded_codes.txt”中找不到某些字符串。请参阅我答案中的编辑。请尝试复制我的示例会话,然后更详细地解释问题所在…嗨,Aacini,我尝试了你的代码,它创建了带有“是”的日志,即使在“downloaded_codes.txt”中找不到某些字符串。请参阅我答案中的编辑。请尝试复制我的示例会话,然后详细解释问题所在。。。