中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 22:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何删除文本里的 % 符号 查看 2,297 回复 29
16 发表于 2008-06-01 12:54 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
\037 就代表 % 了?
17 发表于 2008-06-01 12:59 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
楼上正解
18 发表于 2008-06-01 13:06 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
你是怎么知道的啊

那批处理没有这方面的替代符吗
19 发表于 2008-06-01 13:11 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
我一开始用
findstr /I /V /G:x.txt xx.txt>xxx.txt

但是 x.txt 里面的内容要是有 % 就不能删除了

所以问怎么删除 % 符号

findstr /I /V /G:x.txt xx.txt>xxx.txt
比较方便 把要删除的内容都放 x.txt 里 不知道 CHANGE.EXE 有没有类似的方法
20 发表于 2008-06-01 17:16 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by amio at 2008-6-1 01:06 PM:
你是怎么知道的啊

那批处理没有这方面的替代符吗

我是听别人说的
批处理没听说

如果你想知道其它字符如何替换,可以google搜索“ASCII码对照表”。
21 发表于 2008-06-01 17:27 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
楼主我不是给你回了吗?cmd处理特殊字符是很不擅长的,
sed s/[%]//g a.txt
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
22 发表于 2008-06-01 19:44 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
用其它的工具的呀.....- -!
23 发表于 2008-06-01 20:38 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
Originally posted by plp626 at 2008-6-1 05:27 PM:
楼主我不是给你回了吗?cmd处理特殊字符是很不擅长的,
sed s///g a.txt



我也回复你了啊 我说我没看懂 试了几次也不好使
24 发表于 2008-06-01 21:30 ·  中国 重庆 渝中区 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
直接用变量的字符替换也行呢:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
set str=%%i
set str=!str:%%=!
echo !str!
)
pause
25 发表于 2008-06-01 21:44 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by amio at 2008-6-1 08:38 PM:



我也回复你了啊 我说我没看懂 试了几次也不好使


你用的操作系统是?有没下载sed?
我 测试sed效率很高,
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
26 发表于 2008-06-02 14:46 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
Originally posted by plp626 at 2008-6-1 09:44 PM:


你用的操作系统是?有没下载sed?
我 测试sed效率很高,



下了 不是84KB 吗 我在CMD下执行的命令 XP系统
27 发表于 2008-06-03 00:36 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by amio at 2008-6-2 02:46 PM:



下了 不是84KB 吗 我在CMD下执行的命令 XP系统

删除%a%\b\%c_d_e%
并把结果输出到b.txt
sed "s/%a%\\b\\%c_d_e%//g" a.txt>b.txt
28 发表于 2008-06-03 01:00 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type a.txt') do (
set str=%%i&set str=!str:%%=!
if not defined flag (
echo !str!>a.txt&set flag=A
) else (
echo !str!>>a.txt
)
)
echo 搞定!
pause>nul


[ Last edited by zw19750516 on 2008-6-3 at 01:09 AM ]
批处理之家新域名:www.bathome.net
29 发表于 2008-06-03 09:08 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
Originally posted by HAT at 2008-6-3 12:36 AM:

删除%a%\b\%c_d_e%
并把结果输出到b.txt
sed "s/%a%\\b\\%c_d_e%//g" a.txt>b.txt



如果不能用批处理调用sed的话很麻烦
30 发表于 2008-06-03 09:21 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
Originally posted by zw19750516 at 2008-6-3 01:00 AM:

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type a.txt') do (
set str=%%i&set str=!str:%%=!
if not defined flag (
echo !str!> ...


如果 要删除的是 %t 就会被替换成 echo 处于关闭状态

就是在这地方加个t
set str=%%i&set str=!str:%%t=!
论坛跳转: