我使用grep的Windows端口创建了一个bat文件,允许我使用上下文搜索来搜索字符串。它看起来像这样:
grep -C -i "%1" %2
如果我像这样调用它:grep -C -i" Smith" Mydoc.doc的 我得到了我想要的确切结果:
Bruce Korn
10 Smith Street
Durham, NC
但有没有人知道将一种Windows Color命令添加到蝙蝠的方法,以便#34; Smith" 将以绿色显示(类似于"颜色0F和#34;)作为管道或类似的东西添加?我只是想不出怎么做(或者甚至可能)
(grep端口没有着色或突出显示功能)
答案 0 :(得分:0)
我不久前发现了这个批处理文件。不幸的是,我无法找到来源,或记得是谁写的。希望有人会看到这个,并能够提供一个链接。
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
echo next line in another color:
call :ColorText 0c "There is an Ashstorm!"
echo this was red.
call :ColorText 0a "you survived it."
goto :eof
:ColorText
echo off
echo %DEL% > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
你应该能够使用for循环来调整它,只改变第一行的颜色。
替换此部分;
echo next line in another color:
call :ColorText 0c "There is an Ashstorm!"
echo this was red.
call :ColorText 0a "you survived it."
以下内容:
set c=1
for /f "delims=" %%a in ('grep -C -i "%1" %2') do (
if !c!==1 (call :ColorText 02 "%%a") else echo %%a
set /a c+=1
)