求批处理批量替换txt特定字符\/|:<>?*和行首Tab

把\换成╲把/换成╱把|换成‖把:换成:把<换成《把>换成》把?换成?把*换成﹡删除行首Tab... 把\换成╲

把/换成╱
把|换成‖
把:换成:
把<换成《
把>换成》
把?换成?
把*换成﹡
删除行首Tab
展开
 我来答
yyykkkyyyy
2012-09-30 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3310万
展开全部
@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
追问
测试没通过。
批处理闪了一下,什么结果也没有。
追答
我是测试过了的,不知道你是怎么运行的,还可以把文件拖到批处理文件上执行,
注意一下 (for /f "tokens=1* delims= :" 这个冒号之前的空是用Tab键按出来的,如果贴过去变了要改一下
白渡知道达人
2012-09-26 · TA获得超过110个赞
知道答主
回答量:185
采纳率:80%
帮助的人:55万
展开全部
试试 文件批量处理百宝箱V8.0主界面的批替换功能,注意导入替换操作列表中的先后顺序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式