标题: 如何来替换文本中的“字符?(也就是引号)
[打印本页]
作者: hdshjffdd
时间: 2006-8-2 09:32
标题: 如何来替换文本中的“字符?(也就是引号)
如何来替换文本中的“字符?(也就是引号)
作者: bagpipe
时间: 2006-8-2 09:38
至于替换,用 %aa:"=xx% 这样的形式进行,不过你没有发出你要替换的文本,这里也是不好说的............
作者: hdshjffdd
时间: 2006-8-2 09:59
就比如说文本1.txt。内容如下
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
@echo off&call :rubbish %0%~x0&cd /d %*
:rubbish (if "%~$PATH:1"=="谢谢您" path=%~dp0;%path%&goto :eof)
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
想把文本中的所有“字符都消去,是怎么个做法?或者想把文本中的”谢谢您“换成”感谢您“,又是如何做法?
作者: bagpipe
时间: 2006-8-2 11:18
@echo off
setlocal
for /f "delims=" %%d in (1.txt) do (
set "a=%%d"
call set "b=%%a:"=%%"
call set "c=%%b:谢谢您=感谢您%%"
for /f "delims=" %%h in ('echo "%%c%%"') do echo %%~h >>tmp.txt
)
还真TMD够费劲的,不过不知道通用性怎么样?有待验证............
作者: 3742668
时间: 2006-8-2 11:29
为什么不直接启用延时的环境变量呢?
@echo off
echo 去掉引号:
call :replace 1.txt "
echo.
echo 替换字符:
call :replace 1.txt "谢谢您" "感谢您"
pause>nul
goto :eof
:replace
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1* delims=" %%i in (%1) do set var=%%i & echo !var:%2=%3!
endlocal
goto :eof
作者: hxuan999
时间: 2006-11-23 02:49
这段代码写的不错,呵
作者: electronixtar
时间: 2006-11-23 07:05
楼上灌水灌的不错,呵呵(其实我也是来灌水的)
作者: flying008
时间: 2006-12-12 02:14
为什么偶测试3742668版主的代码时,不能在变量前后加上引号?否则代码不起作用?
感谢你 谢谢你 ==>有效
“感谢你” “谢谢你” ==>无效
为什么?
作者: wydos
时间: 2006-12-12 03:35
我测试是成功的。
可能8楼的“字符出错了
作者: lxmxn
时间: 2006-12-12 04:01
一个是中文的引号,一个是西文的引号。
作者: happy0909
时间: 2006-12-12 06:07
我是新手大家以后多多关照呀!!
作者: vkill
时间: 2006-12-12 07:36
用sed通用的多
作者: 3742668
时间: 2006-12-12 10:27
现在回头再看,觉得此贴方案不是很成熟健壮。
作者: shuaigeya
时间: 2007-3-10 02:04
彼有收获 学习了
作者: jianyaogao
时间: 2007-3-18 00:43
shou huo
作者: jianyaogao
时间: 2007-3-18 00:44
shou huo
作者: iamsea
时间: 2007-3-18 01:11
水平有限看不明白,先收起来以后慢慢研究
作者: star8289
时间: 2007-3-22 22:56
有收获,谢谢~
作者: enliang
时间: 2007-4-7 06:03
好像不能把字符替换成双引号哈(西文的)"
作者: enliang
时间: 2007-4-7 06:03
好像不能把字符替换成双引号哈(西文的)"
作者: sandsor
时间: 2007-7-26 18:43
标题: 学习...
学习ing.....
仍然在懵懂之中.....
作者: akin520
时间: 2007-8-2 12:17
顶一下,正在学习中
作者: akin520
时间: 2007-8-2 12:18
顶一下,正在学习中
作者: limishan
时间: 2007-9-2 02:33
搞不太明白,
作者: icyheart
时间: 2007-9-2 19:38
Quote: |
Originally posted by 3742668 at 2006-8-2 11:29 AM:
为什么不直接启用延时的环境变量呢?
[code]
@echo off
echo 去掉引号:
call :replace 1.txt "
echo.
echo 替换字符:
call :replace 1.txt " ... |
|
能解释一下for后面set var=%%i & echo !var:%2=%3!这句吗?由其是 var:%2=%3这句是什么意思呢?
作者: lxmxn
时间: 2007-9-9 03:17
Quote: |
Originally posted by icyheart at 2007-9-2 19:38:
能解释一下for后面set var=%%i & echo !var:%2=%3!这句吗?由其是 var:%2=%3这句是什么意思呢? |
|
将 var 变量中的%2所表示的字符替换为%3表示的字符。其中%2和%3代表命令行的第2和第3个参数。
作者: onlysky
时间: 2007-11-25 21:15
不错,正在找,不过能否改成可批量替换某类型文件内容中的多个参数
作者: YoDe
时间: 2007-12-9 00:49
标题: 请教如何修改TXT里的字符
我想做一个批处理
其中1.txt如下
%ProgramFiles%\bhbsdrx.inf
%ProgramFiles%\bjifays.inf
%ProgramFiles%\jguiwef.inf
%ProgramFiles%\meex.exe
%ProgramFiles%\vmhrlbm.inf
%ProgramFiles%\Yahoo!
%ProgramFiles%\ah.bat
%ProgramFiles%\ah.exe
%ProgramFiles%\internet.exe
%ProgramFiles%\SysInfo.wmp
%ProgramFiles%\SysInfo.tmp
bat文件如下
@echo off
for /f "delims==" %%a in (c:\我的音乐\1.txt) do (set %%a="%%a")
for /f "delims==" %%a in (c:\我的音乐\1.txt) do md %%a >NUL&&for /f "delims==" %%a in (c:\我的音乐\1.txt) do attrib %%a +r +s +a +h >NUL&&for /f "delims==" %%a in (c:\我的音乐\1.txt) do cacls %%a /c /e /d everyone >NUL
我想用批处理给1.txt的文件每行加个两个冒号 该如何做
比如
”%ProgramFiles%\SysInfo.tmp“
还有
for /f "delims==" %%a in (c:\我的音乐\1.txt) do (set %%a="%%a")
其中(set %%a="%%a")
是否要加转义符^该如何加?
(set %%a=^"%%a")
作者: stance
时间: 2008-4-21 15:34
受教!