您好我正在尝试创建一个循环文件夹并获取其名称,并在每个文件夹中获取文件的名称。
它始于:
@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命令有关,任何人都有想法?
答案 0 :(得分:1)
缺少两个括号。这是更正后的代码。
@echo off
setlocal enabledelayedexpansion
for /d %%d in (Folder*) do (
for %%f in ("%%d"\*.bla) do (
rem "command list"
echo %%f
)
)
答案 1 :(得分: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
可用于优化此内容。