中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 20:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用变量替换文件中的指定字符串 查看 907 回复 3
楼 主 如何用变量替换文件中的指定字符串 发表于 2008-09-22 16:39 ·  日本
新手上路
积分 10
发帖 4
注册 2008-09-16 18:47
17年会员
UID 125792
性别 男
状态 离线
作了一个替换程序,把全路径换成当前路径

程序如下:

@echo off & SetLocal EnableDelayedExpansion

dir /s /b *.sql > all_sql.conf
set cdir=%cd%
for /f "tokens=1* delims=:" %%a in ('findstr /n .* all_sql.conf') do (
set string=%%b
echo\"!string!"|findstr /c:%%cdir%% >nul && (
set string=!string:"%cdir%"=.!
echo\!string!
) || (echo\!string!)
)
echo %cdir%

可惜死活不转。

请高手指点一二!!
2 发表于 2008-09-22 20:40 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /b *.sql') do (
set str=%%a
set str=!str:%cd%=.!
echo !str!
)
3 多谢回复 发表于 2008-09-24 13:07 ·  日本
新手上路
积分 10
发帖 4
注册 2008-09-16 18:47
17年会员
UID 125792
性别 男
状态 离线
不过在本机不能运行,不知道怎么回事。

我这里根目录里带有空格,所以一直无法对应。
4 发表于 2008-09-24 13:27 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
代码保存为test.bat,双击运行,把完整结果贴出来看看。

setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /b *.sql') do (
set str=%%a
set str=!str:%cd%=.!
echo !str!
)
pause
论坛跳转: