我正在使用Windows 10,通过命令提示符窗口运行批处理文件。
我可以使事情起作用,但我不知道为什么它起作用或为什么我不能做某些事情:
set "file_list=a1 a2"
for %%a in (%file_list%) do (
echo %%a.py
)
这小段代码有效。我可以在上面建立,但是
Q1:我想将变量%% a更改为%% filename ...,但这不起作用!我想知道是否可以保留文件名,所以我尝试了%% fname。在这种情况下,我得到错误:
%fname was unexpected at this time.
我可以在命令行中进行设置并使用描述性变量名,但是在循环时似乎不起作用。 (我是使用上面的%file_list%变量来完成的!)为什么我只能对循环变量使用单个字符?有什么办法解决吗?
Q1a。这使我认为循环索引变量是与set命令中的变量不同的变量。那是对的吗?如果是这样,是否有一个链接可以清楚简洁地说明差异?
Q2。我注意到循环索引变量是%% a,而不是a或%a或%a%。我永远都不会猜到。我看过的网站就是这么说的。但是我看不到任何原因的解释,除了第一个百分比是逃脱。好的。那真的并不能解释任何事情。它只是意味着“这就是您的操作方式”。使用百分号时出现的错误消息很有趣。
set "file_list=a1 a2"
for %a in (%file_list%) do (
echo %a.py
)
"file_list) was unexpected at this time."
所以我可以隐约看到有些东西无法正确逃脱。为什么%a中的%需要转义,所以变成%% a了?