求批处理批量替换txt特定字符\/|:<>?*和行首Tab
把\换成╲把/换成╱把|换成‖把:换成:把<换成《把>换成》把?换成?把*换成﹡删除行首Tab...
把\换成╲
把/换成╱
把|换成‖
把:换成:
把<换成《
把>换成》
把?换成?
把*换成﹡
删除行首Tab 展开
把/换成╱
把|换成‖
把:换成:
把<换成《
把>换成》
把?换成?
把*换成﹡
删除行首Tab 展开
展开全部
@echo off
set "fs=%*"
if "%fs%"=="" set/p fs=用鼠标拖入要处理的文件(直接回车取当前文件夹所有txt文件):
if "%fs%"=="" for /f "delims=" %%i in ('dir/b *.txt')do call set fs=%%fs%% "%%~fi"
for %%i in (%fs%)do (
cd/d "%%~dpi"
(for /f "tokens=1* delims= :" %%a in ('findstr/n .* "%%~nxi"')do (
set "h=y%%b"
setlocal enabledelayedexpansion
set "h=!h:\=╲!"
set "h=!h:/=╱!"
set "h=!h:|=‖!"
set "h=!h::=:!"
set "h=!h:<=《!"
set "h=!h:>=》!"
set "h=!h:?=?!"
set n=1&set n.=2&call :yky
echo.!h:~1!
endlocal))>temp.txt
move temp.txt "%%~nxi"
)
pause
goto :eof
:yky
if "!h:~%n%!"=="" goto :eof
if "!h:~%n%,1!"=="*" (
set h=!h:~,%n%!﹡!h:~%n.%!)
set/a n+=1,n.+=1
goto :yky
set "fs=%*"
if "%fs%"=="" set/p fs=用鼠标拖入要处理的文件(直接回车取当前文件夹所有txt文件):
if "%fs%"=="" for /f "delims=" %%i in ('dir/b *.txt')do call set fs=%%fs%% "%%~fi"
for %%i in (%fs%)do (
cd/d "%%~dpi"
(for /f "tokens=1* delims= :" %%a in ('findstr/n .* "%%~nxi"')do (
set "h=y%%b"
setlocal enabledelayedexpansion
set "h=!h:\=╲!"
set "h=!h:/=╱!"
set "h=!h:|=‖!"
set "h=!h::=:!"
set "h=!h:<=《!"
set "h=!h:>=》!"
set "h=!h:?=?!"
set n=1&set n.=2&call :yky
echo.!h:~1!
endlocal))>temp.txt
move temp.txt "%%~nxi"
)
pause
goto :eof
:yky
if "!h:~%n%!"=="" goto :eof
if "!h:~%n%,1!"=="*" (
set h=!h:~,%n%!﹡!h:~%n.%!)
set/a n+=1,n.+=1
goto :yky
追问
测试没通过。
批处理闪了一下,什么结果也没有。
追答
我是测试过了的,不知道你是怎么运行的,还可以把文件拖到批处理文件上执行,
注意一下 (for /f "tokens=1* delims= :" 这个冒号之前的空是用Tab键按出来的,如果贴过去变了要改一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询