使用 findstr 执行管道命令

Executing a pipe line command with findstr

我正在尝试获取包含特定字符串的文件的名称。以下命令执行此操作。

dir /a:-D /b | findstr /i "fileName.jar"

我正在尝试使用以下代码通过 bat 文件运行它。

for /F "delims=" %%a in ('dir /a:-D /b | findstr /i "fileName.jar"') do set "batToolDir=%%a"

但我收到以下错误。

| was unexpected at this time.

我需要获取包含特定字符串的文件的名称。我怎样才能做到这一点?任何帮助将不胜感激。

"below error" ??

您需要转义 | 以告诉 cmd 管道是要执行的命令的一部分,而不是 for 的一部分。您需要对所有重定向器执行此操作。

转义字符是^,因此用^|代替括号内的|。任何这样的尴尬,尝试在导致问题的字符之前插入 ^...