怎么去掉批处理替换文本出现的“ECHO 处于关闭状态。”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么去掉批处理替换文本出现的“ECHO 处于关闭状态。”相关的知识,希望对你有一定的参考价值。
代码是:
@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"=999!) else if "!s!"=="" (echo.) else echo !s!))>temp.txt
move /y temp.txt 1.txt
替换成功。但是出现了无数行
“ECHO 处于关闭状态。”
对照原来是文本发现是空格。
怎么把它去掉。谢谢。。
我是过了没问题。
if "!s!"=="" 这个就是判断是否是空行的
echo . 前面判断如果是空行,这个是写空行的。
你看看你运行的出现 “ECHO 处于关闭状态。” 的批处理和这个一样不一样。
或者也可以试试下面的代码
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
set s=%%j
if "!s!"=="" set s=
if %%i==8 (echo !s:"abc"=999!) else echo\!s!))>temp.txt
move /y temp.txt 1.txt 参考技术A 应该说这代码写得不好遇有些特殊符号会走样,仅解决提问中问题,把
else if "!s!"=="" (echo.) else echo !s!))>temp.txt
改成
else echo\!s!))>temp.txt追问
确实可以了。但是有出现新问题。
这个代码把我所有的这个符号!。就是感叹号。全部去掉了.怎么办???????
可以解决,已另回答
本回答被提问者和网友采纳 参考技术B for语句 tokens前面加上eol=
等号后面两个空格。试试看
java字符串中怎么去掉指定字符的前一个字符
如果不会重复的话String s = "afhakhfakshfka_key_adasfasfa" 目标字符串,KEY就用"key"
int index = s.indexOf("key") 获取出现key字符串的第一个位置,这里要保证前面没有跟KEY重复
String left = s.substring(index) 截取KEY出现位置前面的字符串
String right = s.sbustring(index+3) 后面的字符串, +3 是key的长度为3 (KEY的值长度) 参考技术A 比如你想去掉一个字符串的第3个字符的前一个,你可以用charAt指定字符-2的位置变成空
以上是关于怎么去掉批处理替换文本出现的“ECHO 处于关闭状态。”的主要内容,如果未能解决你的问题,请参考以下文章