批处理文件始终停止

时间:2013-07-12 18:50:22

标签: batch-file crash directory

编辑:修复后发现问题不包括“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左右通过跑步关闭。

1 个答案:

答案 0 :(得分:1)

我做了一些修改:

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

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