Board logo

标题: [求助]怎样把文本中的$符号全部替换成感叹号 [打印本页]

作者: enliang     时间: 2007-10-31 11:40    标题: [求助]怎样把文本中的$符号全部替换成感叹号

如题.想把文本中的$符号全部替换成感叹号.请问怎样实现 ? 谢了.自己写了一个其它字符可以替换,就感叹号不能替换.
setlocal EnableDelayedExpansion
for /f "eol=  delims=" %%b in (1.txt) do (
                           set mx=%%b
                           set mx=!mx:$=!!
                           echo !mx!>>2.txt
)

望指点
作者: abcd     时间: 2007-10-31 11:59
for /f "eol=  delims=" %%b in (1.txt) do (
                           set mx=%%b
                           call echo %%mx:$=!%%
)
作者: junchen2     时间: 2007-10-31 12:20
sed s/\$/!/g" 1.txt
作者: abcd     时间: 2007-10-31 12:25
sed "/\$/ s//!/g" 1.txt

速度要快些
作者: gadmyth     时间: 2007-10-31 12:25
sed 在.bat文件中不能用啊。
作者: abcd     时间: 2007-10-31 12:27


  Quote:
Originally posted by gadmyth at 2007-10-31 12:25 PM:
sed 在.bat文件中不能用啊。

??

有什么错误??

sed是第三方命令行工具,不是WINDOWS系统自带的。
作者: enliang     时间: 2007-10-31 12:48


  Quote:
Originally posted by abcd at 2007-10-31 11:59:
for /f "eol=  delims=" %%b in (1.txt) do (
                           set mx=%%b
                           call echo %%mx:$=!%%
)

如果里面有多个不同的字符需要替换,请问又该怎样处理.能同时处理吗??
如还想把里面的?都改成*
作者: abcd     时间: 2007-10-31 13:34
有多个不同的字符需要替换的话,就多set几次就行了。
for /f "eol=  delims=" %%b in (1.txt) do (
                           set mx=%%b
                           call set "mx=%%mx:$=!%%"
                           call set "mx=%%mx:?=*%%"
                           call echo "%%mx%%"
)

作者: kxy0126     时间: 2007-10-31 13:43
大家都是高手呀
佩服
作者: jojand     时间: 2007-10-31 13:57
低于7.1版本的dos不能用 for /f