楼 主
如何用变量替换文件中的指定字符串
发表于 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
论坛跳转: