编辑:修复后发现问题不包括“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左右通过跑步关闭。
答案 0 :(得分:1)
我做了一些修改:
@echo off &SETLOCAL EnableDelayedExpansion
set "ICOINI=Desktop.ini"
for /D %%d IN (*) do (
set "myDIR=%%~d"
call :write_File "!myDIR!"
)
goto:eof