中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 21:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 连续替换失败,请教中!(已解决) 查看 759 回复 6
楼 主 连续替换失败,请教中!(已解决) 发表于 2008-03-29 12:47 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
 我是想写个对批处理加密和解密的批处理,想通过两次替换来实现,但搞了好久就是不能实现第二次替换,也就是不能再换回来,请大家帮帮啊:
----------------------------------
 己在5楼解决问题
@echo off&setlocal enabledelayedexpansion
for /f "skip=2 tokens=*" %%i in ('find " " b.bat') do (
set str=%%i
set str=!str:i=*!
set str=!str:f=#!
set str=!str:t=~!
set str=!str:e=$!
echo !str! >>a.txt
)
上面为第一次替换,下面为第二次替换,不知道为什么第二次不成功,脑袋都想痛了!
for /f "skip=2 tokens=*" %%j in ('find " " a.txt') do (
set var=%%j
set var=!var:*=i!
set var=!var:#=f!
set var=!var:~=t!
set var=!var:$=e!
echo !var! >>b.txt
)

[ Last edited by zw19750516 on 2008-3-29 at 02:13 PM ]
批处理之家新域名:www.bathome.net
2 为了提高,发个水贴: 发表于 2008-03-29 12:58 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
快来人指点下迷津啊!!!!!!!!!!!!!!!!
批处理之家新域名:www.bathome.net
3 发表于 2008-03-29 13:11 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
把你的%%j 换成 %%a 试试
4 发表于 2008-03-29 13:20 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
没用啊,一样换不回来
先吃饭去,等会再来想,唉,真的没想通

[ Last edited by zw19750516 on 2008-3-29 at 01:22 PM ]
批处理之家新域名:www.bathome.net
5 终于实现了: 发表于 2008-03-29 14:11 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
原来还是特殊字符的问题,下面的就可以了:
@echo off&setlocal enabledelayedexpansion
for /f "skip=2 tokens=*" %%i in ('find " " b.bat') do (
set str=%%i
set str=!str:i=aaaa*!
set str=!str:f=bbbb*!
set str=!str:t=cccc*!
set str=!str:e=dddd*!
echo !str! >>a.txt
)
for /f "skip=2 tokens=*" %%j in ('find " " a.txt') do (
set var=%%j
set var=!var:aaaa*=i!
set var=!var:bbbb*=f!
set var=!var:cccc*=t!
set var=!var:dddd*=e!
echo !var! >>b.txt
)
批处理之家新域名:www.bathome.net
6 发表于 2008-03-29 15:13 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
Originally posted by zw19750516 at 2008-3-29 14:11:
原来还是特殊字符的问题,下面的就可以了:
@echo off&setlocal enabledelayedexpansion
for /f "skip=2 tokens=*" %%i in ('find " " b.bat') do (
set str=%%i ...

这样的话 读取b.bat内容到a.txt后 似乎将有内容丢弃
简单!简单!再简单!
7 发表于 2008-03-29 16:02 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
谢谢terse,我注意到了,修改如下:
@echo off&setlocal enabledelayedexpansion
for /f "skip=2 tokens=*" %%i in ('find /v "******" b.bat') do (
set str=%%i
set str=!str:i=aaaa*!
set str=!str:f=bbbb*!
set str=!str:t=cccc*!
set str=!str:e=dddd*!
echo !str! >>a.txt
)
for /f "skip=2 tokens=*" %%j in ('find /v "******" a.txt') do (
set var=%%j
set var=!var:aaaa*=i!
set var=!var:bbbb*=f!
set var=!var:cccc*=t!
set var=!var:dddd*=e!
echo !var! >>b.txt
)
批处理之家新域名:www.bathome.net
论坛跳转: