Windows批处理文件 - 移动/获取循环变量

时间:2016-12-19 20:15:33

标签: batch-file

我试图简单地将目录中的文件名转换为循环然后进行处理(最终目的是在文件名上执行子字符串),但无法使其工作。

我已经搜索了很多内容,在我看来,我所做的事情应该有效,但我显然错过了一些东西。

这是我的代码: -

setlocal ENABLEDELAYEDEXPANSION
set files=*.*
FOR %%A IN ("%files%") DO (
  echo %%A
  Set MYVAR=%%A
  echo MYVAR=%MYVAR%
)
pause

echo的{​​{1}}工作正常,但%%A始终为空。我有这个工作 在我添加括号之前的1行。

请帮忙。我已经花了太长时间在这上面,我正在拔头发。

1 个答案:

答案 0 :(得分:0)

尝试使用以下两种方法之一。

或者:

@Echo Off
SetLocal EnableDelayedExpansion
Set "files=*.*"
For %%A In ("%files%") Do (
    Echo=%%A
    Set "MYVAR=%%A"
    Echo=MYVAR=!MYVAR!
)
Timeout -1

或者:

@Echo Off
Set "files=*.*"
For %%A In ("%files%") Do (
    Echo=%%A
    Set "MYVAR=%%A"
    Call Echo=MYVAR=%%MYVAR%%
)
Timeout -1