请问大佬怎么用bat提取指定内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问大佬怎么用bat提取指定内容?相关的知识,希望对你有一定的参考价值。

例a.txt为以下内容
abcd 2022-04-27 13:28:08.518, 鸡
abcd 2022-04-27 13:28:08.518, 鸭
abcd 2022-04-27 13:28:08.518, 鸡

搜索鸡
输出b.txt为下内容(删除前面的字母和空格)
2022-04-27 13:28:08.518, 鸡
2022-04-27 13:28:08.518, 鸡

现有代码
@echo off
setlocal enabledelayedexpansion
set /p str=搜索:
findstr /i /c:"%str%" a.txt >b.txt
pause

请大佬指教该如何修改

参考技术A 不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行@echo off&cd /d "%~dp0"
rem 从一个txt文本文件里提取出存在/包含有指定关键字的行,并删除行首特定内容
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set /p keyword=搜索:
set "oldfile=a.txt"
set "newfile=b.txt"
if not exist "%oldfile%" (echo;"%oldfile%" not found&pause&exit)
>"%newfile%" (for /f "tokens=1*" %%a in ('type "%oldfile%"^|find /i "%keyword%"') do echo;%%b)
echo;%#% +%$%%$%/%@% %z%
pause
exit

参考技术B @echo off & title 分割文本 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

set ABC=abcdefghijklmnopqrstuvwxyz
set Num=0
for /f "delims=" %%a in ('type "1.txt"') do (
set "Str=%%~a"
echo !Str:^>=〉! | findstr /i "^〉〉IN" >nul 2>nul && (
call set Fn=%%ABC:~!Num!,1%%
(echo !Str:^>=^>!)>"!Fn!.txt"
set /a Num+=1
) || (
(echo !Str!)>>"!Fn!.txt"
)
)
pause
参考技术C @echo off & title 分割文本 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

set ABC=abcdefghijklmnopqrstuvwxyz
set Num=0
for /f "delims=" %%a in ('type "1.txt"') do (
set "Str=%%~a"
echo !Str:^>=〉! | findstr /i "^〉〉IN" >nul 2>nul && (
call set Fn=%%ABC:~!Num!,1%%
(echo !Str:^>=^>!)>"!Fn!.txt"
set /a Num+=1
) || (
(echo !Str!)>>"!Fn!.txt"
)
)
pause
参考技术D @echo off & title 分割文本 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

set ABC=abcdefghijklmnopqrstuvwxyz
set Num=0
for /f "delims=" %%a in ('type "1.txt"') do (
set "Str=%%~a"
echo !Str:^>=〉! | findstr /i "^〉〉IN" >nul 2>nul && (
call set Fn=%%ABC:~!Num!,1%%
(echo !Str:^>=^>!)>"!Fn!.txt"
set /a Num+=1
) || (
(echo !Str!)>>"!Fn!.txt"
)
)
pause
第5个回答  2022-06-28 @echo off & title 分割文本 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

set ABC=abcdefghijklmnopqrstuvwxyz
set Num=0
for /f "delims=" %%a in ('type "1.txt"') do (
set "Str=%%~a"
echo !Str:^>=〉! | findstr /i "^〉〉IN" >nul 2>nul && (
call set Fn=%%ABC:~!Num!,1%%
(echo !Str:^>=^>!)>"!Fn!.txt"
set /a Num+=1
) || (
(echo !Str!)>>"!Fn!.txt"
)
)
pause

怎么用一个BAT文件删除电脑指定关键词文件名的文件,可以多个关键词一起模糊搜索删除?

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 全盘搜索并删除文件名称中包含有指定关键字的文件
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$keywords=@"
*关键字1*.*
*关键字2*.*
*关键字3*.*
*关键字n*.*
"@;

$self=get-item -literal $env:self;
$kw=New-Object -TypeName System.Collections.ArrayList;
$arr=$keywords.trim("`r`n") -split '[\\r\\n]+';
for($i=0;$i -lt $arr.length;$i++)
    $reg=[regex]::replace($arr[$i], '[\\+\\.\\^\\$\\\\\\[\\]\\(\\)]', 
        param($m);
        return '\\'+$m.groups[0].value;
    );
    $reg='^'+$reg.replace('?','.').replace('*','.*')+'$';
    [void]$kw.add($reg);


for($i=90;$i -ge 65;$i--)
    $drive=([char]$i).toString()+':\\';
    if(test-path $drive)
        write-host ($drive+' Searching......') -ForegroundColor yellow;
        $files=@(dir -literal $drive -recurse|?($self -ne $_.Name) -and ($_ -is [System.IO.FileInfo]));
        for($j=0;$j -lt $files.length;$j++)
            $ismatch=$false;
            for($k=0;$k -lt $kw.count;$k++)
                if($files[$j].Name -match $kw[$k])
                    $ismatch=$true;break;
                
            
            if($ismatch)$files[$j].FullName;
        
        write-host "`r`n`r`n";
    

追问

就是全盘删除带有“数据”“合同”关键字的文件,所有文件类型,不包含文件夹

追答

按运行代码后窗口标题栏中的提示联系我

以上是关于请问大佬怎么用bat提取指定内容?的主要内容,如果未能解决你的问题,请参考以下文章

python提取指定字符中间的内容?

bat中如何筛选文本文件中某行某段文字,提取并给变量赋值

请问大佬有pasmutility.dll免费版软件百度云资源吗

bat提取字符?

python怎么提取出文件里的指定内容

bat 拷贝同一名称文件夹下所有文件?