Batch file 批处理文件始终停止
编辑:修复了原来问题不包括“ICO=%%~nxF”周围的引号 因此,我几乎完善了我的自动文件夹图标转换器,但现在它工作得很好,但有一个小问题,它将运行和停止总是在第113个文件夹。我不知道为什么它会停在那个数字,然后在另一个文件夹中运行,直到第160个文件夹。为什么我的批处理文件会崩溃Batch file 批处理文件始终停止,batch-file,crash,directory,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 myD
@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左右通过运行关闭。我做了一些修改:
@echo off &SETLOCAL EnableDelayedExpansion
set "ICOINI=Desktop.ini"
for /D %%d IN (*) do (
set "myDIR=%%~d"
call :write_File "!myDIR!"
)
goto:eof
删除行
@echo off
,打开一个cmd.exe窗口,从该窗口运行批处理文件,它将显示停止的位置。还有错误消息吗?@David Ruhmann没有,根本没有错误消息。虽然我似乎无法在cmd.exe中运行它,因为它只能从我的文档中运行。我似乎无法更改目录。对脚本的更改会导致任何包含特殊字符的文件夹名称出现问题。唯一重要的更改是调用:write_File“!myDIR!”
尝试更改delayedexpansion和!myDIR!但这只会导致它跳过所有内容,并在暂停时完成,而不做任何事情,我不明白这是为什么。