标题: 如何用变量的值替换另一个变量的值??
[打印本页]
作者: unixShell
时间: 2008-3-5 10:40
标题: 如何用变量的值替换另一个变量的值??
Code:
set text=1234567890#test#1234567890
set test=testing
echo %text:#test#=%test%%
目的是要用%test%替换%text%中#test#部分, 但发现扩展变量中遇到第一个%就返回了, 不知道如何实现,谢谢.
作者: pooronce
时间: 2008-3-5 10:52
好像是不能嵌套使用造成的,但可以变通点,这样:
setlocal enabledelayedexpansion
set text=1234567890#test#1234567890
set test=testing
echo %text:#test#=!test!%
作者: unixShell
时间: 2008-3-5 11:01
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
作者: pooronce
时间: 2008-3-5 11:42
你自己确认一下,哪里打错了啥的:
[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]
作者: unixShell
时间: 2008-3-5 12:31
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!%
作者: s11ss
时间: 2008-3-5 12:33
call echo %%text:#test#=%test%%%
作者: pooronce
时间: 2008-3-5 15:12
Quote: |
Originally posted by unixShell at 2008-3-5 12:31 PM:
老兄,你那是直接echo吧, 要这样呢?
echo %text:#test#=!test!% |
|
问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊
作者: unixShell
时间: 2008-3-5 15:18
Quote: |
Originally posted by pooronce at 2008-3-5 03:12 PM:
问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊 |
|
我是没能试成功,
执行: echo %text:#test#=!test!%
显示: 1234567890!test!1234567890
作者: pooronce
时间: 2008-3-6 14:11
谁叫你这样echo的,这样里面的变量才经过一次处理啊,当然!还在了
你可以再用个变量传递一次啊,没懂吗? 就是再把值赋给另外一个变量,然后再引用最后这个变量名用啊