Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件始终停止_Batch File_Crash_Directory - Fatal编程技术网

Batch file 批处理文件始终停止

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

编辑:修复了原来问题不包括“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左右通过运行关闭。

我做了一些修改:

@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!但这只会导致它跳过所有内容,并在暂停时完成,而不做任何事情,我不明白这是为什么。