Скрипт или пакетный файл для редактирования файла desktop.ini

Я использую 64-битную Windows 10 Pro v1607 build 14393.693 Как мне изменить каждый файл desktop.ini в моей системе? У меня есть маленький SSD C и большой HD E диск. Я переместил свою папку Icon с диска C и поместил папку Icon на диск E. Теперь все мои кастомные иконки не отображаются. Как мне изменить каждый файл desktop.ini в моей системе? Например, внутри одного файла desktop.ini:

[.ShellClassInfo]
IconResource=C:\Windows\System32\Icons\microsoft 1.ico,0

Я хотел бы удалить C:\Windows\System32 и заменить E:\ Результирующая строка файла desktop.ini для этого одного примера:

[.ShellClassInfo]
IconResource=E:\Icons\microsoft 1.ico,0

Я хотел бы применить эту замену к каждому файлу desktop.ini, содержащему строку C:\Windows\System32. Спасибо за любую помощь, которую вы можете оказать.

2 ответа

Насколько я знаю - каждая папка на вашем компьютере (Windows) содержит файл Desktop.ini, который также определяет значки для папки (и многое другое). Мы можем легко пролистать все папки и изменить его файл Desktop.ini.

@Echo off
SetLocal EnableDelayedExpansion
Set _Counter=0
Set _Files=0
Cls

REM Crawling through folders and injecting our own lines...
For %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do (
    If Exist "%%A:" If "%%A:" NEQ "!SystemDrive!" (
        Cd /D "%%A:"
        Cd /
        For /f "Tokens=*" %%B in ('dir /s /b *.* /a:d') Do (
            If Exist "%%B\Desktop.ini" (
                Set _Counter=0
                For /f "Usebackq Tokens=1,2 delims==" %%C in ("%%B\Desktop.ini") Do (
                    Set /A _Counter+=1
                    IF /I "%%C" == "IconResource" (
                        Set "_Icon_Path=%%D"
                        If /I "!_Icon_Path:~0,19!" == "C:\Windows\System32" (Set "_Line[!_Counter!]=%%C=!_Icon_Path:C:\Windows\System32=E:!")
                        ) ELSE (IF /I "%%D" == "" (Set "_Line[!_Counter!]=%%C") ELSE (Set "_Line[!_Counter!]=%%C=%%D")
                    )
                )
                Call :Saveit !_Counter! "%%~B"
                Set /a _Files+=1
         )
    )
)
)

Echo. You are Done in all the Drives. :^)
Echo. Total Files modified= %_Files%
Echo. 

Pause


REM Extra Function...
:Saveit
Del /Q "%~2\Desktop.ini" >nul
For /L %%A in (1,1,%~1) Do (echo.!_Line[%%A]!>>"%~2\Desktop.ini")
Goto :Eof

Снова обновленный в соответствии с вашей последней строкой вопроса и предложениями в комментариях. Теперь вы можете знать, что... он заменяет 'C:\windows\system32' из результата. только в том случае, если файл существует, и только в том случае, если в ресурсе iconres указана указанная выше строка во втором маркере:)

Это определенно решит ваши проблемы на всех существующих дисках. И, чтобы изменить в чувствительных областях - я рекомендую запускать его от имени администратора.

TheBATeam

введите описание изображения здесь

Desktop.ini editör - это портативное бесплатное программное обеспечение для упрощения операций с Desktop.ini, оно может помочь вам отредактировать файлы desktop.ini и установить пользовательские значки папок, Советы по работе с папками, добавление CLSID, сброс настроек папки по умолчанию usw.

Домашняя страница http://www.sordum.org/10084/desktop-ini-editor-v1-0/

Другие вопросы по тегам