中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 16:42
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]延时环境变量不起作用
可打印版本  971 / 11
第1楼 flying008 发表于 2006-12-11 22:15
中级用户 发帖 103 积分 245
[求助]延时环境变量不起作用
请教……
偶有一个替换指定文本文件1.txt内容中所有123为789的批处理文件,里面用到了版主大大说的延时环境变量,但是这个批处理在XP和2000中运行均不起作用[同目录下的这个1.txt没有任何变化],而有的朋友说在他机子上可以,请问是什么问题?
代码如下:
echo
setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
set a=%%i
set a=!a:123=789!
echo !a!
)
pause
exit
第2楼 ccwan 发表于 2006-12-11 22:21
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
你的批处理只是在cmd窗口显示出内容,并不是替换1.txt中的内容
第3楼 NaturalJ0 发表于 2006-12-11 22:23
银牌会员 发帖 533 积分 1,181
你没写对 1.txt 修改的语句,所以它没有任何变化。
把 echo !a! 改成 echo !a!>>2.txt
这样 2.txt 应该就是你所要的文件。
第4楼 ccwan 发表于 2006-12-11 22:24
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
http://www.cn-dos.net/forum/viewthread.php?tid=25506&fpage=2

这其中的内容符合你的要求。
第5楼 flying008 发表于 2006-12-12 00:57
中级用户 发帖 103 积分 245
Originally posted by NaturalJ0 at 2006-12-11 22:23:
你没写对 1.txt 修改的语句,所以它没有任何变化。
把 echo !a! 改成 echo !a!>>2.txt
这样 2.txt 应该就是你所要的文件。


改了之后只是生成了和1.txt内容一样的2.txt,没有任何变化。
第6楼 redtek 发表于 2006-12-12 01:03
金牌会员 发帖 1,147 积分 2,902


(假定1.txt文件中只有普通字母和数字)

我测试上面这个代码没有问题啊~:)
可以更改,楼主再试一下~:)
第7楼 flying008 发表于 2006-12-12 01:50
中级用户 发帖 103 积分 245
狂晕……用了你的代码,再用其它的代码又可以了……
第8楼 flying008 发表于 2006-12-12 01:51
中级用户 发帖 103 积分 245
非常感谢6楼的和以上各位大大……
但是为什么用了3742668版主的代码无论如何也不行?
@echo off

echo 去掉引号:
call :replace 1.txt "

echo.
echo 替换字符:
call :replace 1.txt "123" "789"

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

[ Last edited by flying008 on 2006-12-12 at 02:02 AM ]
第9楼 ccwan 发表于 2006-12-12 02:09
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
你试试去掉引号
第10楼 flying008 发表于 2006-12-12 02:09
中级用户 发帖 103 积分 245
3742668版主的代码可以了,偶终于明白了是自己多了引号惹的祸,谢谢……

[ Last edited by flying008 on 2006-12-12 at 02:11 AM ]
第11楼 lxmxn 发表于 2006-12-12 05:22
版主 发帖 4,938 积分 11,386
用了你的代码,再用其它的代码又可以了……

  汗一个先。

  难道这世界真的有鬼? =_=!!
第12楼 flying008 发表于 2006-12-12 22:00
中级用户 发帖 103 积分 245
这个也要谢谢LXMXN了,一样的代码他也曾写过偶,不知什么原因,开始不起作用,后来又可以了……
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023