某个文件夹里的多个文档,如何删除和添加这些文档里面的指定字符串。以及删除含有某字符文档。
发布网友
发布时间:2022-05-10 14:17
我来回答
共1个回答
热心网友
时间:2023-10-11 12:10
第一个问题的代码:
@echo off & title 批量删除文本中指定字符串 By 依梦琴瑶
cd /d "%~dp0"
::设置要删除的字符串,字符串和变量名需用英文双引号括引起来,这样可以处理特殊字符
set "Str=山很高?>"
call :CreatVBS
for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
ReplaceString.vbs "%%~a" "%Str%"
)
del /f /q ReplaceString.vbs
pause
exit
:CreatVBS
(echo Set Fso=Wscript.CreateObject("Scripting.FileSystemObject"^)
echo Set sFile=Fso.OpenTextFile("" ^& WScript.Arguments(0^) ^& ""^)
echo ReStr=Replace(sFile.ReadAll,"" ^& WScript.Arguments(1^) ^& "", ""^)
echo sFile.Close
echo Set nFile=Fso.OpenTextFile("" ^& WScript.Arguments(0^) ^& "",2,True^)
echo nFile.Write ReStr
echo Wscript.quit)>ReplaceString.vbs
goto :eof
第二个问题的代码:
@echo off & title 批量删除带有指定字符串的文件 By 依梦琴瑶
cd /d "%~dp0"
::设置要搜索的字符串
set Str=天气
for %%a in (*.txt) do (
find /i "%Str%" "%%~a" >nul 2>nul && del /f /q "%%~a"
)
pause
exit
第三个问题的代码:
@echo off & title 批给文本首尾添加字符串 By 依梦琴瑶
cd /d "%~dp0"
call :CreatTextFile
for /f %%a in ('dir /a-d/b *.txt') do (
(more +1 "%TextHead%"
type "%%~a"
echo,
more +1 "%TextEnd%")>NewFile.tmp
move /y NewFile.tmp "%%~a"
)
pause
exit
:CreatTextFile
set "TextHead=%tmp%\TextHead.txt"
set "TextEnd=%tmp%\TextEnd.txt"
echo 请根据提示输入内容
(echo [请在此行提示下方写上要添加到文首的字符串,完成后请直接保存并关闭此文本窗口])>"%TextHead%"
(echo [请在此行提示下方写上要添加到文末的字符串,完成后请直接保存并关闭此文本窗口])>"%TextEnd%"
start "" /wait "%TextHead%"
echo,>>"%TextHead%"
start "" /wait "%TextEnd%"
cls
goto :eof
来自:求助得到的回答