Batch file Shell输出重定向到多个管道
在cmd.exe中,某个命令以以下形式生成输出: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”和另一个命令的组合来剪切行的相关部分。您应该能够将命令的结果通过管道
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实现:或