真的需要一些帮助!不知疲倦地尝试了几个星期...
此脚本将更改所有子目录的属性,然后使用位于子目录的 \Icon 中的图标将创建一个相关的 Desktop.ini 来更改文件夹图标和一些其他设置(如果有位于 \Icon 中的图标)
@ECHO OFF
CHCP 1252 >NUL
set ICOINI=Desktop.ini
for /D %%d IN (*) do (
set "FOLDER=%%d"
call :write_File FOLDER
)
Pause
:Write_File
setlocal EnableDelayedExpansion
IF NOT EXIST "!FOLDER!\Icon\*.ico" goto :EOF
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=1
)>"!FOLDER!\%ICOINI%"
attrib -a +s +h "!FOLDER!\%ICOINI%"
echo !FOLDER!
endlocal
goto :EOF
exit /b
该脚本的工作原理是更改相关文件夹的属性并创建 Desktop.ini(除非有感叹号!)。虽然它并不总是改变文件夹的图标。如果我手动将 Desktop.ini 更改为“ . ”,然后返回 Desktop.ini,它会立即更改文件夹图标。那么有没有一种方法可以用机智的属性重命名 Desktop.ini?
我目前解决此问题的方法是采用以下方法:
echo f | xcopy /Y /Q /H /R "!CD!\!FOLDER!\%ICOINI%" "!CD!\!FOLDER!\Desktoop.ini" /K
del /Q /AHS "!CD!\!FOLDER!\%ICOINI%"
echo f | xcopy /Y /Q /H /R "!CD!\!FOLDER!\Desktoop.ini" "!CD!\!FOLDER!\%ICOINI%" /K
del /Q /AHS "!CD!\!FOLDER!\Desktoop.ini"
不幸的是,这失败了,但我不知道为什么。(它复制,删除,复制,然后删除就好了)只是不会更改文件夹图标。
好的,我之前已经多次遇到过这个问题,虽然其中一些与我的命令批处理脚本有关,但似乎不是这个问题。虽然我想要一些帮助来解决问题(如果这甚至可以批量处理!)。