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 如果文件夹名称与正则表达式匹配,则Cmd findstr_Batch File_Command Line_Cmd_Command Prompt - Fatal编程技术网

Batch file 如果文件夹名称与正则表达式匹配,则Cmd findstr

Batch file 如果文件夹名称与正则表达式匹配,则Cmd findstr,batch-file,command-line,cmd,command-prompt,Batch File,Command Line,Cmd,Command Prompt,我有一个非常简单的问题。在批处理文件中,我有以下内容: echo%Axx%|>numfindstr/r/c:“^A[0-9]{6}”(echo“true”) 暂停>nul %Axx%的格式为A123456。但这并不符合“真实”。 我是不是使用了正确的正则表达式,还是其他什么?非常感谢您的帮助。findstr的正则表达式功能非常有限 请尝试“^A[0-9][0-9][0-9][0-9][0-9][0-9]” 或者findstr/b/r/c:“A[0-9][0-9][0-9][0-9][0-9][0

我有一个非常简单的问题。在批处理文件中,我有以下内容:

echo%Axx%|>numfindstr/r/c:“^A[0-9]{6}”(echo“true”)
暂停>nul

%Axx%
的格式为
A123456
。但这并不符合“真实”。
我是不是使用了正确的正则表达式,还是其他什么?非常感谢您的帮助。

findstr
的正则表达式功能非常有限

请尝试“^A[0-9][0-9][0-9][0-9][0-9][0-9]”


或者
findstr/b/r/c:“A[0-9][0-9][0-9][0-9][0-9][0-9][0-9]”
findstr
表达式中没有计数
{}
,在命令提示符窗口中键入
findstr/?
,查看非常有限的可能性

要匹配一定数量的字符或表达式,需要重复相应的搜索表达式,如下所示:

echo(%Axx%| > nul findstr /R /C:"^A[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]$" && echo true
> nul pause
如果要精确匹配整个字符串,则需要追加
$
。此外,还必须删除管道符号前面的空格
|
,因为它在其他情况下也会回显

我在搜索表达式中使用的是
[0123456789]
而不是
[0-9]
,因为前者只匹配数字,但后者也可能匹配一些特殊字符,如
²
³
,具体取决于当前代码页

请注意,
/B
与搜索字符串中的第一个字符相同,因此不要同时声明这两个字符


最后,如果
%Axx%
与搜索字符串匹配,我相信您实际上希望回显
true
。这就是为什么我将
|
替换为
&&
。如果我错了,而你想要相反的行为,只需保持
|

谢谢,你的第一个解决方案非常有效:)