中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 20:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]路径输出和内容替换问题~麻烦各位大哥 查看 1,596 回复 15
楼 主 [求助]路径输出和内容替换问题~麻烦各位大哥 发表于 2007-12-04 19:27 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
使用 echo %cd% >lujing.txt 后,lujing.txt的内容为“C:\Documents and Settings\Administrator\桌面” ,我想让它的输出内容变成“C:\\Documents and Settings\\Administrator\\桌面”应该怎么做,如果上一步实现后我想把输出后的内容替换掉注册表文件lujing.reg中的"c:\\ak4\\p",又该怎么做
谢谢~!!
2 发表于 2007-12-04 19:44 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
搜索 “替换”
3 发表于 2007-12-04 20:08 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
通过搜索把一步做出来了
代码如下:
echo %cd% >root.txt
setlocal enabledelayedexpansion
for /f "delims=" %%i in (root.txt) do (
set str=%%i
set "str=!str:\=\\!"
>root.txt echo !str!
)

但是第2步怎么弄还是不知道

[ Last edited by w1314ich on 2007-12-4 at 08:09 PM ]
4 发表于 2007-12-04 20:23 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
@echo off
for /F "tokens=1,2 ,3delims=\" %%i in ('echo %%cd%%') do echo %%i\\%%j\\%%k
pause>nul
5 发表于 2007-12-04 20:39 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
楼上的运行后出现“此时不应有 ,3delims=\"。”的错误 并且没有任何结果
6 发表于 2007-12-04 20:44 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
少个空格
@echo off
for /F "tokens=1,2,3 delims=\" %%i in ('echo %%cd%%') do echo %%i\\%%j\\%%k
pause>nul
7 发表于 2007-12-04 20:56 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
输出结果不完全,比如我在桌面运行的话 结果是 C:\\Documents and Settings\\Administrator 改成tokens=1,2,3,4 %%i\\%%j\\%%k\\%%l 才能输出正确值,这么的话不具有通用性 呵呵 现在主要是把我提问题的第2步给解决了
不过还是非常感谢huahua0919 谢谢~~~
8 发表于 2007-12-04 21:14 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
第一步:echo %cd:\=\\%
9 发表于 2007-12-04 21:17 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
哇靠 精简的就是爽~~ 谢谢ABCD 能不能告诉我第2步怎么做啊
10 发表于 2007-12-04 21:26 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
第二步是替换lujing.reg里面的“c:\\ak4\\p”为什么?

最好能给个lujing.reg的样本、
11 发表于 2007-12-04 21:30 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
lujing.reg如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{1C7593CB-C1CC-4BA7-BE52-8EEA47F9CB1D}\InprocServer32]
@="C:\\ak4\\p\\t.dll"
12 发表于 2007-12-04 21:34 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
@echo off
for /f "tokens=1* delims=:" %%i in ('findstr /n .* lujing.reg') do (
set "str=%%j"
call echo %%str:c:\\ak4\\p=%cd:\=\\%%%
)
pause

[ Last edited by abcd on 2007-12-4 at 09:47 PM ]
13 发表于 2007-12-04 21:43 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
还是不好用啊~~ 晕~~

[ Last edited by w1314ich on 2007-12-4 at 11:04 PM ]
14 发表于 2007-12-04 23:10 ·  中国 辽宁 沈阳 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
19年会员
UID 86077
性别 男
状态 离线
谁来帮帮我解决第二步啊 等了一个晚上了~~~~~~~~~~
15 发表于 2007-12-04 23:48 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
@echo off&setlocal enabledelayedexpansion
for %%i in ("%cd%") DO (
set src1=%%i
set src1=!src1:\=\\!
set src1=!src1:"=!
)
for /f "delims=" %%i in (lujing.reg) DO (
set src2=%%i
set src2=!src2:c:\\ak4\\p=%src1%!
echo\!src2!
)
pause
少个\ 加上

ABCD的也应该好用的嘛!试试!
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* lujing.reg') do (
set "str=%%j"
if not "!str!"=="" set "str=!str:c:\\ak4\\p=%cd:\=\\%!"
echo\!str!>>lujing2.reg
)
move /y "lujing2.reg" "lujing.reg" 2>NUL
pause

[ Last edited by terse on 2007-12-5 at 12:24 AM ]
简单!简单!再简单!
论坛跳转: