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 使用findstr搜索批处理文件中的正则表达式_Batch File_Findstr - Fatal编程技术网

Batch file 使用findstr搜索批处理文件中的正则表达式

Batch file 使用findstr搜索批处理文件中的正则表达式,batch-file,findstr,Batch File,Findstr,我想创建一个批处理文件,以检查文件名是否已按照某些规则写入。 文件名包含一些由连字符分隔的参数(字母和数字),如: FIN73-INV-2015-ANN 我想检查前两个参数(部门名称和文档类型),最重要的是检查hypen是否错误编写了超过1次。e、 g.FIN73——INV-2015-ANN 我尝试过使用FINDSTR命令,但似乎不起作用,因为即使有两个连字符,errorlevel始终为0,如本例所示: echo FIN73——INV-2015-ANN | FINDSTR/i“^[a-z]-[a

我想创建一个批处理文件,以检查文件名是否已按照某些规则写入。 文件名包含一些由连字符分隔的参数(字母和数字),如: FIN73-INV-2015-ANN

我想检查前两个参数(部门名称和文档类型),最重要的是检查hypen是否错误编写了超过1次。e、 g.FIN73——INV-2015-ANN

我尝试过使用FINDSTR命令,但似乎不起作用,因为即使有两个连字符,errorlevel始终为0,如本例所示:

echo FIN73——INV-2015-ANN | FINDSTR/i“^[a-z]-[a-z]”

你有更多的建议吗

谢谢你的

使用
FINDSTR/i“^[a-z][a-z][a-z][0-9][0-9]-[a-z]”

如果字母/数字的计数未知:
FINDSTR/i“^[a-z]*[0-9]*-[a-z]”

输出示例:

Checking "FIN73-INV-ANN"
Error: missing parts

Checking "FIN73--INV-2015-ANN"
Error: duplicated hyphen

Checking "FIN93-INV-2015-ANN"
Error: invalid department: FIN93

Checking "FIN73-INX-2015-ANN"
Error: invalid type: INX

Checking "FIN73-INV-2015-ANN"
Name correct

请使用findstr/?并检查findstr语法。Findstr在文件中显式搜索。另外,请熟悉正则表达式语法。
Checking "FIN73-INV-ANN"
Error: missing parts

Checking "FIN73--INV-2015-ANN"
Error: duplicated hyphen

Checking "FIN93-INV-2015-ANN"
Error: invalid department: FIN93

Checking "FIN73-INX-2015-ANN"
Error: invalid type: INX

Checking "FIN73-INV-2015-ANN"
Name correct