1

真的需要一些帮助!不知疲倦地尝试了几个星期...

此脚本将更改所有子目录的属性,然后使用位于子目录的 \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"

不幸的是,这失败了,但我不知道为什么。(它复制,删除,复制,然后删除就好了)只是不会更改文件夹图标。

好的,我之前已经多次遇到过这个问题,虽然其中一些与我的命令批处理脚本有关,但似乎不是这个问题。虽然我想要一些帮助来解决问题(如果这甚至可以批量处理!)。

4

1 回答 1

2

使用 Windows XP (YMMV) 和Windows Sysinternals测试

@echo off &setlocal
pskill explorer
start "" explorer
start "" explorer "%folder%"
于 2013-08-01T09:44:56.037 回答