0

编辑:已修复,事实证明问题不包括 '"ICO=%%~nxF"' 周围的引号

所以我几乎完善了我的自动文件夹图标更换器,但现在它运行良好但有一个小问题,它会运行并且总是在第 113 个文件夹处停止。我不知道为什么它会停在那个数字上,并且在另一个文件夹中它一直运行到第 160 个文件夹左右。为什么我的批处理文件会崩溃?

@ECHO OFF

set ICOINI=Desktop.ini


for /D %%d IN (*) do (  
    set "myDIR=%%~d"
    call :write_File myDIR
)

Pause

goto End_File

:Write_File

setlocal EnableDelayedExpansion
set "FOLDER=!%~1!"

attrib +a +s "!FOLDER!" /d /s

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

IF EXIST "!FOLDER!\%ICOINI%" attrib -a -s -h "!FOLDER!\%ICOINI%"

(
    echo [.ShellClassInfo]
    echo IconResource=!CD:~2!\!FOLDER!\Icon\%ICO%, 0
    echo IconFile=!CD:~2!\!Folder!\Icon\%ICO%
    echo IconIndex=0
    echo InfoTip=%ICO:~0,-4%
    echo.
    echo FolderType=Videos
    echo DefaultDropEffect=4
    echo ConfirmFileOp=0
)>"!FOLDER!\%ICOINI%"

attrib -a +s +h "!FOLDER!\%ICOINI%"

echo !FOLDER!

endlocal

goto :EOF

:End_File

exit /b

我很想告诉你它在哪里或谁退出,但它只是通过跑步关闭 1/2 - 2/3 左右。

4

1 回答 1

1

我做了一些修改:

@echo off &SETLOCAL EnableDelayedExpansion
set "ICOINI=Desktop.ini"

for /D %%d IN (*) do (
     set "myDIR=%%~d"
     call :write_File "!myDIR!"
)
goto:eof
于 2013-07-12T19:08:00.950 回答