编辑:我认为 for 循环正在运行到子目录的子目录中,从每个子目录返回“Icon”文件夹并将其作为第一个参数传递。我需要让第一个循环只通过第一组子目录
示例目录结构:
文件\01\图标文件\02\图标文件\03\图标
所以它贯穿 01,然后是 02,然后是 03,然后是 01\Icon,02\Icon,03\Icon。它需要在第一级停止。
for 循环出错了!请你帮我修一下好吗?
看来嵌套for循环运行faaar的次数太多了,只需要运行一次就可以找到*.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