Batch file Shell输出重定向到多个管道

Batch file Shell输出重定向到多个管道,batch-file,cmd,findstr,Batch File,Cmd,Findstr,在cmd.exe中,某个命令以以下形式生成输出: Asd foo content 1 Qwe bar content 1 Asd foo content 2 Qwe bar content 2 ... 我想将其格式化,以生成: foo content 1, bar content 1 foo content 2, bar content 2 我该怎么做 我的猜测是可以使用“&”(并行命令)、“|”(管道)、“findstr”和另一个命令的组合来剪切行的相关部分。您应该能够将命令的结果通过管道

在cmd.exe中,某个命令以以下形式生成输出:

Asd foo content 1
Qwe bar content 1
Asd foo content 2
Qwe bar content 2
...
我想将其格式化,以生成:

foo content 1, bar content 1
foo content 2, bar content 2
我该怎么做


我的猜测是可以使用“&”(并行命令)、“|”(管道)、“findstr”和另一个命令的组合来剪切行的相关部分。

您应该能够将命令的结果通过管道传输到用于Windows的sed中,但这需要下载非本机实用程序。该项目有一个免费版本的sed

这是一个本机批处理解决方案,不需要任何下载

@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%A in ('yourCommand') do (
  set "ln=%%A"
  setlocal enableDelayedExpansion
  set "ln2=!ln:*foo =foo !"
  if "!ln2!" neq "!ln!" (
    <nul set /p "=!ln2!"
  ) else (
    echo , !ln:*bar =bar !
  )
  endlocal
)
@echo关闭
setlocal disableDelayedExpansion
对于/f“delims=“%%A in('yourCommand')do(
设置“ln=%%A”
setlocal enableDelayedExpansion
设置“ln2=!ln:*foo=foo!”
如果“!ln2!neq”!ln!”(

至于切割,如果值在变量中,则可以按如下方式提取:
%date:~10,4%
尝试windows的tee实现:或