【发布时间】:2013-11-24 03:37:49
【问题描述】:
我正在运行这个命令,但我不明白为什么它不起作用
setlocal EnableDelayedExpansion
for %%a in (harry-boy) do set %%a:-==
echo %harry%
pause
这就是我得到的结果 -
e:\6\1>setlocal EnableDelayedExpansion
e:\6\1>for %a in (harry-boy) do set %a:-==
e:\6\1>set harry-boy:-==
e:\6\1>echo
ECHO is on.
e:\6\1>pause
Press any key to continue . . .
我将连字符更改为等号,然后对其运行 set 命令。我希望看到变量“harry”=“boy”??
这是一个简单的测试 -
set file=play=here.mkv
set %file:==-%
echo %file%
pause
我明白了 -
set file=play=here.mkv
==-%
was unexpected at this time.
set %file:==-%
我以为我会得到 file = play-here.mkv 的新内容。好的,我看到这使语法错误并且 set 命令停止。那么如何将 = 更改为连字符呢?
【问题讨论】:
-
你的set命令语法错误,不能这样使用循环变量名。它必须是一个变量名。
-
您已添加更多信息 - 替换功能无法替换
=符号。
标签: variables batch-file for-loop