Windows 在批处理文件中使用管道命令

Windows 在批处理文件中使用管道命令,windows,batch-file,cmd,devcon,Windows,Batch File,Cmd,Devcon,我试图编写一个批处理文件,使用devcon搜索设备,然后在这些设备上运行“devcon enable” 我的批处理文件如下所示: for /f "tokens=1 delims=:" %%i in ('devcon find *VENDER_INFO* ^| findstr /C:"DEVICEINFO"') do devcon enable "@"%%i 您可以忽略“VENDER_INFO”和“DEVICEINFO”,因为我只是简单地对它们进行了编辑,以使命令更易于阅读 当我运行这个.bat

我试图编写一个批处理文件,使用devcon搜索设备,然后在这些设备上运行“devcon enable”

我的批处理文件如下所示:

for /f "tokens=1 delims=:" %%i in ('devcon find *VENDER_INFO* ^| findstr /C:"DEVICEINFO"') do devcon enable "@"%%i
您可以忽略“VENDER_INFO”和“DEVICEINFO”,因为我只是简单地对它们进行了编辑,以使命令更易于阅读

当我运行这个.bat文件时,它看起来好像

devcon find *VENDER_INFO* ^| findstr /C:"DEVICEINFO"
命令仅运行第一部分,无法通过管道传递结果

findstr /C:"DEVICEINFO"

你能看到我的.bat文件有什么问题吗?为什么它会忽略管道和find命令的第二部分?我尝试删除“^”,但失败了,并说“|”是意外的。

查找命令需要双引号

请阅读以下帮助:

find /?

find
命令需要双引号

请阅读以下帮助:

find /?

供参考。您的
VENDER\u INFO
字符串中是否有特殊字符?能否显示
devcon find*VENDER\u INFO*
的输出?你想匹配什么?你在我的机器上做的很好。您是否尝试过在不在for循环内的情况下单独运行该命令并确保它返回您想要的结果?只有在通过
for/F
循环解析
devcon
命令行的输出时,才需要管道前面的
^
;你说你只使用
|
直接运行
devcon
东西(no
^
,no
for
),但失败了;因此,您也可以直接尝试
(devcon find*VENDER_INFO*)findstr/C:“DEVICE_INFO”
。。。供参考。您的
VENDER\u INFO
字符串中是否有特殊字符?能否显示
devcon find*VENDER\u INFO*
的输出?你想匹配什么?你在我的机器上做的很好。您是否尝试过在不在for循环内的情况下单独运行该命令并确保它返回您想要的结果?只有在通过
for/F
循环解析
devcon
命令行的输出时,才需要管道前面的
^
;你说你只使用
|
直接运行
devcon
东西(no
^
,no
for
),但失败了;因此,您也可以直接尝试
(devcon find*VENDER_INFO*)findstr/C:“DEVICE_INFO”
。。。