这个批处理怎么回事?为什么把这个符号!去掉了?
代码是:@echooffsetlocalenabledelayedexpansion(for/f"tokens=1*delims=:"%%iin('findstr/n.*...
代码是:
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set s=%%j
if %%i==100 (echo !s:"abc"=:"123"!) else echo\!s!))>temp.txt
move /y temp.txt 1.txt
代码的意思就是。指定把1.txt里面的100行的"abc"替换成"123" 。运行这个bat后。怎么把我所有的感叹号全部去掉了?开头,中间,最后,几十个感叹号全部去掉了。怎么回事?这个 !符号 展开
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set s=%%j
if %%i==100 (echo !s:"abc"=:"123"!) else echo\!s!))>temp.txt
move /y temp.txt 1.txt
代码的意思就是。指定把1.txt里面的100行的"abc"替换成"123" 。运行这个bat后。怎么把我所有的感叹号全部去掉了?开头,中间,最后,几十个感叹号全部去掉了。怎么回事?这个 !符号 展开
3个回答
展开全部
是因为英文的感叹号被命令“setlocal enabledelayedexpansion”屏蔽掉了。。。
你试试执行这段代码就知道了...
@ECHO OFF & setlocal enabledelayedexpansion
ECHO 这是中文感叹号:!!!
ECHO 这是英文感叹号:!!!
PAUSE
至于解决方法,可以借鉴一楼的,但不用下什么第三方软件
直接用批处理的方法就可以,先不写setlocal enabledelayedexpansion,将文本中的所有英文感叹号替换了,再指定把1.txt里面的100行的"abc"替换成"123",最后写setlocal disabledelayedexpansion,再将英文感叹号改回来,虽然有些麻烦呢...
你试试执行这段代码就知道了...
@ECHO OFF & setlocal enabledelayedexpansion
ECHO 这是中文感叹号:!!!
ECHO 这是英文感叹号:!!!
PAUSE
至于解决方法,可以借鉴一楼的,但不用下什么第三方软件
直接用批处理的方法就可以,先不写setlocal enabledelayedexpansion,将文本中的所有英文感叹号替换了,再指定把1.txt里面的100行的"abc"替换成"123",最后写setlocal disabledelayedexpansion,再将英文感叹号改回来,虽然有些麻烦呢...
展开全部
这种情况我喜欢的方法是,处理前先把!替换成☆(或其他文本中肯定没有的特殊字符),处理后再替换回来。
需要借助一个第三方命令行工具,国产高手白杨的wfr
@echo off
setlocal enabledelayedexpansion
wfr 1.txt -r:"!" -t:"☆"
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set s=%%j
if %%i==100 (echo !s:"abc"=:"123"!) else echo\!s!))>temp.txt
move /y temp.txt 1.txt
wfr 1.txt -r:"☆" -t:"!"
wfr下载地址,百度搜索 白杨的原创免费作品,打开白杨网页找
wide find - replace
下载后解压到c:\windows\system32或批处理所在目录运行上面的批处理。
需要借助一个第三方命令行工具,国产高手白杨的wfr
@echo off
setlocal enabledelayedexpansion
wfr 1.txt -r:"!" -t:"☆"
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set s=%%j
if %%i==100 (echo !s:"abc"=:"123"!) else echo\!s!))>temp.txt
move /y temp.txt 1.txt
wfr 1.txt -r:"☆" -t:"!"
wfr下载地址,百度搜索 白杨的原创免费作品,打开白杨网页找
wide find - replace
下载后解压到c:\windows\system32或批处理所在目录运行上面的批处理。
参考资料: 百度搜索 白杨的原创免费作品
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off&echo 稍候...
(for /f "tokens=1* delims=:" %%i in ('findstr/n .* "1.txt"')do (
set "s=%%j"
if %%i==100 (
setlocal enabledelayedexpansion
echo !s:"abc"=999!
endlocal)else echo\%%j
))>temp.txt
move temp.txt "1.txt"
echo\&set/p=处理完毕 按任意键退出... <nul&pause>nul
(for /f "tokens=1* delims=:" %%i in ('findstr/n .* "1.txt"')do (
set "s=%%j"
if %%i==100 (
setlocal enabledelayedexpansion
echo !s:"abc"=999!
endlocal)else echo\%%j
))>temp.txt
move temp.txt "1.txt"
echo\&set/p=处理完毕 按任意键退出... <nul&pause>nul
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询