0

我有一个简单的批处理文件,可以从文本文件中找到 0。我需要的是从左列中仅找到 0 个整数,而不是从文件名中检测 0 个整数,例如ABCDE01-1FGHIJ01-1在文本文件的右列中的等。当检测到 0 时,必须显示一条消息,指出已找到 0 以及左栏中包含 0 的文件名/文件夹路径(例如文件名:FGHIJ01/文件夹路径:)D:\FOLDER A\ FGHIJ01.MOV

请参考下面我的批处理文件并建议如何编辑它以满足此要求。我的文本文件:

5916 D:\FOLDER A\ ABCDE01.MOV/ 0 D:\FOLDER A\ FGHIJ01.MOV

我的批处理文件脚本:

@echo off find "0" <"C:\Users\User\Desktop\outcome.txt" >nul && echo ERROR:FOUND ZERO SIZE IN THE FILE!!! & pause
4

3 回答 3

1

假设格式始终为 0.0000,应该这样做:

@echo off
find "0.0000" <"C:\Users\User\Desktop\outcome.txt" >nul && echo ERROR:FOUND ZERO SIZE IN THE FILE!!! & pause
于 2013-09-06T16:13:35.197 回答
0

尝试一下Regex

findstr "\<0.0000\>" "C:\Users\User\Desktop\outcome.txt" >nul && (
    echo ERROR:FOUND ZERO SIZE IN THE FILE!!! 
    pause
)

\<是正则表达式是正则表达式start of a word
\>正则end of a word
表达式单词包含a-zA-Z和。0-9_

于 2013-09-07T08:22:30.910 回答
0

以下命令执行您想要的操作,假设 0 单独出现在一行上,没有其他字符(如您最近的编辑中所示):

findstr /B /E "0" test.txt > nul && echo Found zero

/B /E "0"找到在行首和行尾的 0 。

如果你想看起来很聪明,你可以这样做:

findstr /R "^0$" test.txt > nul && echo Found 0

...并处理一堆文件并仅显示包含此类 0 的文件的名称:

findstr /M /R "^0$" *.txt

如果 0 不是单独在一行上(而是在开头),您需要使用稍微不同的搜索模式:

findstr /R "^0\>" test.txt > nul && echo Found zero

这与行首的 0 匹配(这就是^目的),但紧随其后有一个空格或其他一些非单词字符。

于 2013-09-09T17:47:03.783 回答