标题: [文本处理] 批处理怎样替换包含空格的字符串? [打印本页]
作者: FIR1987 时间: 2011-4-27 14:14 标题: 批处理怎样替换包含空格的字符串?
- setlocal ENABLEDELAYEDEXPANSION
- for /f "delims=" %%i in ( c:\bat3.txt ) do (
- set var=%%i
- set var=!var:Timing, TOTAL TIME (CREATE CUBE)=Timing!
- echo !var! >> c:\newbat3.txt
- )
- PAUSE
复制代码
用这段代码替换 如果!var:a=b! 是这样的字母好使,但是如果中间有空格 就不好用了
其实我想把Timing, TOTAL TIME (CREATE CUBE)整个在文本中删除。多谢
作者: CrLf 时间: 2011-4-27 14:18
感觉是)号的问题,试试改成:
set "var=!var:Timing, TOTAL TIME (CREATE CUBE)=Timing!"
作者: applba 时间: 2011-4-27 14:21
set "str1=Timing, TOTAL TIME (CREATE CUBE)"
set "var=!var:str1="
作者: hanyeguxing 时间: 2011-4-27 14:34
“想把Timing, TOTAL TIME (CREATE CUBE)整个在文本中删除”为什么还要在=后指定Timing呢?- @echo off&setlocal ENABLEDELAYEDEXPANSION
- (for /f "delims=" %%i in (c:\bat3.txt) do (
- set "var=%%i"
- set "var=!var:Timing, TOTAL TIME (CREATE CUBE)=!"
- echo;!var!
- ))> c:\newbat3.txt
复制代码
作者: FIR1987 时间: 2011-4-27 23:32
4# hanyeguxing
因为我觉得不能没东西 我一直没试出来 呵呵 明天再试试 谢谢版主
作者: FIR1987 时间: 2011-4-27 23:33
2# zm900612
憨豆 你是说我的括号是中文吗 应该不是这个问题吧 我是从日志里截取的啊
作者: FIR1987 时间: 2011-4-28 11:10
感觉是)号的问题,试试改成:
set "var=!var:Timing, TOTAL TIME (CREATE CUBE)=Timing!"
zm900612 发表于 2011-4-27 14:18
憨豆 版主的都可以
憨豆为啥要加双引号 是因为括号吗
作者: hanyeguxing 时间: 2011-4-28 12:02
你在1楼中发的两个都是英文的 Timing, TOTAL TIME (CREATE CUBE)
((前面是英文后面是中文
作者: CrLf 时间: 2011-4-28 13:26
因为()是语块的分隔符,若在语句内含有不应该用于划分语句的)而未转义或加双引号,常会被错误划分:- setlocal ENABLEDELAYEDEXPANSION
- for /f "delims=" %%i in ( c:\bat3.txt ) do 【(
- set var=%%i
- set var=!var:Timing, TOTAL TIME (CREATE CUBE)】=Timing!
- echo !var! >> c:\newbat3.txt
- )
- PAUSE
复制代码
作者: Hello123World 时间: 2011-4-29 10:59
9# zm900612
【】这中文大括号是什么意思?
作者: hanyeguxing 时间: 2011-4-29 11:04
只是用来提示命令解释器将哪两个括号作为一对来划分,不是代码的内容
作者: yjstone 时间: 2011-5-1 00:47
本帖最后由 yjstone 于 2011-5-1 10:41 编辑
这样就可以了:- setlocal ENABLEDELAYEDEXPANSION
- for /f "delims=" %%i in ( c:\bat3.txt ) do (
- set var=%%i
- set var=!var:Timing, TOTAL TIME ^(CREATE CUBE^)=Timing!
- echo !var! >> c:\newbat3.txt
- )
- PAUSE
复制代码
作者: yjstone 时间: 2011-5-1 10:44
还可以更简洁一些:- for /f "delims=" %%i in ( c:\bat3.txt ) do (
- set var=%%i
- call echo %%var:Timing, TOTAL TIME ^(CREATE CUBE^)=Timing%%>>c:\newbat3.txt
- )
- PAUSE
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |