0

嗨,我正在尝试创建一个循环,该循环将遍历文件夹并取其名称,并在每个文件夹中获取文件的名称。

它开始于:

@echo off
setlocal enabledelayedexpansion
for /d %%d in (Folder*) do
    for %%f in ("%%d"\*.bla) do (
"command list"
)

我在一开始就有一个共鸣:

 %%d was unexpected at this time

我想这与 setlocal 命令有关,有人知道吗?

4

2 回答 2

1

它缺少两个括号。这是更正后的代码。

@echo off
setlocal enabledelayedexpansion
for /d %%d in (Folder*) do (
    for %%f in ("%%d"\*.bla) do (
        rem "command list"
        echo %%f
    )
)
于 2012-08-24T12:43:37.520 回答
0

我已经测试过以下脚本是否有效。

@echo off
set parent=%1

echo Beginning from %parent%...
for /d %%G in ("%parent%"\*) do (
    echo Folder: "%%G"
    set child=%%G
    echo %child%
    for /r %child%\ %%H in (*.*) do (
        echo File: "%%H"
    )

)
pause.

以根路径为参数运行:myscript.bat C:\Windows.

%%G比其他字母更受欢迎,因为这里. 但这不是必需的。

如我所见,for /r path %%H in (*.*) do ()for用于文件的正确形式。你的脚本是错误的。您的脚本中一定有一些语法错误,请全部发布。

根据您的要求,这只深入一层:对于根目录下的所有目录,输入它并打印所有文件的名称。它不区分二级和更深层次下的目录。goto可以用来细化这个。

于 2017-06-23T13:38:23.283 回答