我想知道是否有单行代码在Windows上执行以下操作:
myCommand options1 | cut -c 10-20 > temp1.txt
myCommand options2 | cut -c 10-20 > temp2.txt
paste temp1.txt temp2.txt
我也希望使用diff
代替paste
来做类似的事情,但我猜测答案是否相同(是吗?)。通常,temp1和2都有多行文本。我发现以下看起来像一个类似的问题
Print output of two commands in two columns in excel file
但那没有答案。
编辑/更新:我现在意识到我并不十分清楚“单线”#。显然,我可以将所有三条线放在一条线上,只需用&符号分隔即可。那不是我想要的。我模糊地回忆起多年前使用Unix时反引号可以用于这样的事情。也许像是
paste `cmd1` `cmd2`
不太确定(?)。这就是我正在寻找的东西(在Windows上)。理想情况下,与简单地输入上面的三行相比,它不会涉及(更多)打字。这存在吗?
答案 0 :(得分:1)
我永远不会理解为什么要使用单行,但是你走了:
(ping localhost |find "Mini" & ipconfig |find "IPv4")>temp.txt
编辑以并排显示两个命令的输出:
@echo off
setlocal enabledelayedexpansion
ping localhost |find "TTL" >1.txt
ipconfig |find ":" >2.txt
<1.txt (
for /f "delims=" %%a in (2.txt) do (
set /p "x="
echo !x! ; %%a
set "x=-"
)
)>temp1.txt
与单行(与批处理文件)相同:
cmd /v:on /c ping localhost |find "TTL" >1.txt & ipconfig |find ":" >2.txt & <1.txt (for /f "delims=" %%a in (2.txt) do (set /p "x=" & echo !x! ; %%a & set "x=-"))>temp2.txt
在命令行上使用的单行程序:
cmd /v:on /c "ping localhost |find "TTL" >1.txt & ipconfig |find ":" >2.txt & <1.txt (for /f "delims=" %a in (2.txt) do @(set /p "x=" & echo !x! ; %a & set "x=-"))>temp.txt"
注意:在结果中,行数与2.txt
中的行数一样多(第二个命令的输出)。如果1.txt
有更多行,则省略它们(较少的行不是问题)