对于循环疯狂!嵌套for循环GOTO

时间:2013-06-27 00:21:39

标签: windows for-loop batch-file cmd goto

编辑:我认为for循环正在运行到子目录的子目录中,从每个子目录返回'Icon'文件夹,并将其作为第一个参数传递。我需要让第一个循环只运行第一组子目录

示例目录结构:

文件\ 01 \图标 文件\ 02 \图标 文件\ 03 \图标

所以它通过01,然后是02,然后是03,然后是01 \ Icon,02 \ Icon,03 \ Icon。它需要停在第一级。

for循环出错了!你能帮我解决一下吗?

似乎嵌套的for循环运行次数太多次,只需要运行一次就可以找到* .ico的文件名。不确定是否有更快的方法来找到* .ico。我不知道有没有办法在没有for循环的情况下返回图标文件名。

@ECHO OFF

set ICOINI=Desktop.ini

for /D /R "%cd%" %%d IN (*) do call :Write_File %%~nd

goto :End_File

:Write_File

attrib +s "%CD%\%1"
echo Set Attributes for: %cd%\%1

for %%F in ("%CD%\%1\Icon\*.ico") do set ICO=%%~nxF

IF EXIST "%CD%\%1\%ICOINI%" attrib -a -s -h "%1\%ICOINI%"

echo [.ShellClassInfo]>"%CD%\%1\%ICOINI%"
echo IconResource="%CD:~2%\%1\%ICO%">>"%CD%\%1\%ICOINI%"
echo InfoTip="%ICO:~0,-4%">>"%CD%\%1\%ICOINI%"

attrib -a +s +h "%CD%\%1\%ICOINI%"

goto :EOF

:End_File

Pause

1 个答案:

答案 0 :(得分:2)

试试这个:

set "ICO="
for %%F in ("%CD%\%~1\Icon\*.ico") do if not defined ICO set "ICO=%%~nxF"