求大神写一个批处理命令
要求:在TXT文本中,把文本内容中的每一个字符间都批量自动插入符号“★”。举例:台湾,是中国的领土!批量插入符号“★”后,变成:台★湾★,★是★中★国★的★领★土★!★谢...
要求:在TXT文本中,把文本内容中的每一个字符间都批量自动插入符号“★”。
举例:台湾,是中国的领土!
批量插入符号“★”后,变成:台★湾★,★是★中★国★的★领★土★!★
谢谢大神,祝2018发大财!
要求在汉字,英文,数字,以及各种标点符号的状态下也能实现这功能 展开
举例:台湾,是中国的领土!
批量插入符号“★”后,变成:台★湾★,★是★中★国★的★领★土★!★
谢谢大神,祝2018发大财!
要求在汉字,英文,数字,以及各种标点符号的状态下也能实现这功能 展开
展开全部
把下面的批处理存为addstar.bat,为了使用方便,建议将这个批处理程序放在windows根目录下面。使用时,只需要在cmd中进行进入目标文件夹,假设在d:\test中要处理test.txt,则在d:\test目录下,输入addstar.bat test.txt。然后会在目录下按要求生成“★test.txt”文件,如果您的文件是abc.txt,则会生成“★abc.txt”,而且可以多行处理。
程序已在Win10下测试通过,不过需要注意的是,批处理有特殊字符处理限制,该程序只能处理~`@#$%^&=;:()[]{}这些英文特殊字符,所有中文标点都没有问题;如果某行文本中含有:";',./()<>?*-+\|则程序会处理失败。
@echo off
setlocal enabledelayedexpansion
@if exist ★%1 @del ★%1
@set s=0
@for /f "delims=" %%i in (%1) do (
@set ln=%%i
@goto B
)
:S
@for /f "skip=%s% delims=" %%i in (%1) do (
@set ln=%%i
@goto B
)
:B
@set ln_n=
@if not defined ln goto X
@set /a s=s+1
:C
@set ln_n=%ln_n%%ln:~0,1%★
@set ln=%ln:~1%
@if not defined ln (@echo %ln_n%>>★%1&goto S)
@goto C
:X
程序已在Win10下测试通过,不过需要注意的是,批处理有特殊字符处理限制,该程序只能处理~`@#$%^&=;:()[]{}这些英文特殊字符,所有中文标点都没有问题;如果某行文本中含有:";',./()<>?*-+\|则程序会处理失败。
@echo off
setlocal enabledelayedexpansion
@if exist ★%1 @del ★%1
@set s=0
@for /f "delims=" %%i in (%1) do (
@set ln=%%i
@goto B
)
:S
@for /f "skip=%s% delims=" %%i in (%1) do (
@set ln=%%i
@goto B
)
:B
@set ln_n=
@if not defined ln goto X
@set /a s=s+1
:C
@set ln_n=%ln_n%%ln:~0,1%★
@set ln=%ln:~1%
@if not defined ln (@echo %ln_n%>>★%1&goto S)
@goto C
:X
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "delims= tokens=* eol=" %%a in (a.txt) do (
set ctr=0
set str=%%a
call :loop
echo !str2!>>temp.tmp
)
del /f /q a.txt
rename temp.tmp a.txt
pause
exit
:loop
for %%a in (!ctr!) do (
if "!str:~%%a,1!" == "" goto :eof
set "str2=!str2!!str:~%%a,1!★"
set /a ctr+=1
)
goto :loop
请把a.txt改为你想要读取的txt的文件名,代码中一共出现两处a.txt,请全部替换掉。
运行前请先备份原txt,以防万一。
代码经测试可行。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询