中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 14:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 路径替换问题 查看 872 回复 9
楼 主 路径替换问题 发表于 2006-12-05 02:27 ·  中国 江苏 苏州 电信
初级用户
积分 29
发帖 16
注册 2005-11-15 16:39
20年会员
UID 45306
状态 离线
Directory Image=D:\Green\Opera\images\folder.gif
Drive Image=D:\Green\Opera\images\drive.gif
Link Image=D:\Green\Opera\images\link.gif
File Image=D:\Green\Opera\images\file.gif
Cache Style File=D:\Green\Opera\Styles\cache.css
Dir Style File=D:\Green\Opera\Styles\dir.css
Drives Style File=D:\Green\Opera\Styles\drives.css
History Style File=D:\Green\Opera\Styles\history.css
Plugins Style File=D:\Green\Opera\Styles\plugins.css
WML CSS File=D:\Green\Opera\Styles\wml.css
OPF CSS File=D:\Green\Opera\Styles\opf.css
CSR CSS File=D:\Green\Opera\Styles\csr.css
About Style File=D:\Green\Opera\Styles\About.css
MIME Style File=D:\Green\Opera\Styles\mime.css
Info CSS File=D:\Green\Opera\Styles\info.css
Language Codes File=D:\Green\Opera\lngcode.txt
IM Style File=D:\Green\Opera\Styles\im.css
Certificate Info CSS File=D:\Green\Opera\styles\certinfo.css
Help Directory=http://help.opera.com/help
Plugin Path=D:\Green\Opera\Program\Plugins;


我想把上面的D:\Green\Opera替换成e:\file\opera

大家帮帮忙,怎么用批处理完成
2 发表于 2006-12-05 02:37 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set var=%%i
set var=!var:D:\Green\Opera=e:\file\opera!
echo !var!
)
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-05 02:54 ·  中国 江苏 苏州 电信
初级用户
积分 29
发帖 16
注册 2005-11-15 16:39
20年会员
UID 45306
状态 离线
谢谢版主,如果那个d:\green\opera的长度是不固定的怎么办?
如d:\green\opera\opera或者别的什么
4 发表于 2006-12-05 07:37 ·  中国 上海 徐汇区 电信
中级用户
★★
大师兄
积分 377
发帖 99
注册 2005-08-26 07:37
20年会员
UID 41945
状态 离线
使用

_
| |
___ ___ __| |
/ __|/ _ \/ _` |
\__ \ __/ (_| |
|___/\___|\__,_|


参见此帖(点击前往)


5 发表于 2006-12-05 08:05 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by knight1006 at 2006-12-4 13:54:
谢谢版主,如果那个d:\green\opera的长度是不固定的怎么办?
如d:\green\opera\opera或者别的什么

  实在想象不出长度不固定指的是一种什么情况,请多举几个例子,以便于理解你的意思。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-12-05 08:30 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
很难得看到 tigerpower 在线啊

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
7 发表于 2006-12-05 21:16 ·  中国 江苏 苏州 电信
初级用户
积分 29
发帖 16
注册 2005-11-15 16:39
20年会员
UID 45306
状态 离线
谢谢大家的关心,就还用上面的例子吧,这是OPERA浏览器的一个配置文件,现要将其做成绿色版就涉及到更改路径的问题。
偶是想把上一次的路径和当前的路径都保存到文件中,然后用FOR或都用GSAR来替换路径(SED对中文支持不好,故不考虑用它)。这个原始路径和当前路径的长度都不固定(也就是上面的D:\green\opera),不知道怎么才能识别它。
8 发表于 2006-12-05 21:18 ·  中国 江苏 苏州 电信
初级用户
积分 29
发帖 16
注册 2005-11-15 16:39
20年会员
UID 45306
状态 离线
举例如下:

op.txt 存储上一次的路径 d:\green\opera

rul.txt 存储当前路径 c:\opera

请问如何传递这两个文件的内容给FOR或者GSAR来更改上面的路径,把d:\green\opera改为c:\opera

这其中这两个路径的长度可能会变,关键是如何从这两个文件中读取内容并传递给程序

[ Last edited by knight1006 on 2006-12-5 at 09:28 PM ]
9 发表于 2006-12-05 23:08 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
用sed
10 发表于 2006-12-05 23:19 ·  中国 江苏 苏州 电信
初级用户
积分 29
发帖 16
注册 2005-11-15 16:39
20年会员
UID 45306
状态 离线
不用它,它对中文支持不好
论坛跳转: