|
unixShell
初级用户
积分 22
发帖 8
注册 2008-3-5
状态 离线
|
『楼 主』:
如何用变量的值替换另一个变量的值??
Code:
set text=1234567890#test#1234567890
set test=testing
echo %text:#test#=%test%% 目的是要用%test%替换%text%中#test#部分, 但发现扩展变量中遇到第一个%就返回了, 不知道如何实现,谢谢.
|
|
2008-3-5 10:40 |
|
|
pooronce
中级用户
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
『第
2 楼』:
好像是不能嵌套使用造成的,但可以变通点,这样:
setlocal enabledelayedexpansion
set text=1234567890#test#1234567890
set test=testing
echo %text:#test#=!test!%
|
|
2008-3-5 10:52 |
|
|
unixShell
初级用户
积分 22
发帖 8
注册 2008-3-5
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by pooronce at 2008-3-5 10:52 AM:
好像是不能嵌套使用造成的,但可以变通点,这样:
setlocal enabledelayedexpansion
set text=1234567890#test#1234567890
set test=testing
echo %text:#test#=!test!% |
|
Hi, 我也曾试过用延迟,出来的结果是:
1234567890!test!1234567890
|
|
2008-3-5 11:01 |
|
|
pooronce
中级用户
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
『第
4 楼』:
你自己确认一下,哪里打错了啥的:
[shell]
F:\pe>test
F:\pe>setlocal enabledelayedexpansion
F:\pe>set text=1234567890#test#1234567890
F:\pe>set test=testing
F:\pe>echo 1234567890!test!1234567890
1234567890testing1234567890
[/shell]
|
|
2008-3-5 11:42 |
|
|
unixShell
初级用户
积分 22
发帖 8
注册 2008-3-5
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by pooronce at 2008-3-5 11:42 AM:
你自己确认一下,哪里打错了啥的:
[shell]
F:\pe>test
F:\pe>setlocal enabledelayedexpansion
F:\pe>set text=1234567890#test#1234567890
F:\pe>set test=testing
F: ... |
|
老兄,你那是直接echo吧, 要这样呢?
echo %text:#test#=!test!%
|
|
2008-3-5 12:31 |
|
|
s11ss
银牌会员
积分 2098
发帖 566
注册 2007-9-11
状态 离线
|
『第
6 楼』:
call echo %%text:#test#=%test%%%
|
|
2008-3-5 12:33 |
|
|
pooronce
中级用户
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
『第
7 楼』:
Quote: | Originally posted by unixShell at 2008-3-5 12:31 PM:
老兄,你那是直接echo吧, 要这样呢?
echo %text:#test#=!test!% |
|
问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊
|
|
2008-3-5 15:12 |
|
|
unixShell
初级用户
积分 22
发帖 8
注册 2008-3-5
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by pooronce at 2008-3-5 03:12 PM:
问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊 |
|
我是没能试成功,
执行: echo %text:#test#=!test!%
显示: 1234567890!test!1234567890
|
|
2008-3-5 15:18 |
|
|
pooronce
中级用户
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
『第
9 楼』:
谁叫你这样echo的,这样里面的变量才经过一次处理啊,当然!还在了
你可以再用个变量传递一次啊,没懂吗? 就是再把值赋给另外一个变量,然后再引用最后这个变量名用啊
|
|
2008-3-6 14:11 |
|