set filename=test_2014-8-23.rar
set newname=%filename:_2014-8-23=%
这样可以把filename中的_2014-8-23部分替换成空,给变量newname
但现在这个要替换的部分,我也是以一个变量的形式赋值的,请问这种情况下应该怎么写呢
你没写对。递归不是这么递归的。
以下不是程序,是说明。我不是程序员,不会写程序。忘了“:”什么意思。但你逻辑有问题。
刚才查了一下,:=替换。
如果filename=test_2014-8-23.rar
“set newname=%filename:_2014-8-23=%”
那你的实际结果就是:newname=显示出的名字是:(test_2014-8-23.rar 转向 _2014-8-23.rar)=_2014-8-23.rar
这里按你的设定 filename=A;newname=一碰到A值匹配,就转到: B值。A和B为任意值。
set "filename=test_2014-8-23.rar"
set "str=_2014-8-23"
call set "newname=%%filename:%str%=%%"
echo %newname%