batchnewbie
Goto Top

Ordnericon per Senden an verändern

Hallo,
ich habe ein kleines Problem und komme leider nicht weiter. Ich möchte das Icon des Ordner per Senden an verändern. Im Verzeichnis XYZ liegt eine xyz.ico Datei. Per Rechtsklick auf das Verzeichnis in Kontextmenü Senden an möchte ich die Batch auswählen und diese soll das Ordnericon ändern, sprich die Desktop.ini mit dem Pfad der xyz.ico neu schreiben. Leider gelinkt mir das nicht und ich weiß nicht ob der Fehler liegt. Hoffe jemand kann mir weiter Helfen face-smile
REM SetIcon.bat
@echo off & title %~n0
cls

if not exist %APPDATA%\Microsoft\Windows\SendTo\SetIcon.bat (
copy SetIcon.bat %APPDATA%\Microsoft\Windows\SendTo & echo Ins SendTo Ordner kopiert & pause & exit)

REM welchselt ins Ordner
pushd "%~1"  

for /f "delims=" %%i in ('dir /b /a-d "*.ico"') do set "IconName=%%i"  

attrib -s -r %~1
attrib -s -h Desktop.ini

REM schreibe Desktop.ini
echo [.ShellClassInfo] > Desktop.ini
echo IconResource=%~1\%IconName%,0 >> Desktop.ini

REM nicht notwendig
REM echo IconFile=%IconName% >> Desktop.ini
REM echo IconIndex=0 >> Desktop.ini
REM echo [ViewState] >> Desktop.ini
REM echo Mode= >> Desktop.ini
REM echo Vid= >> Desktop.ini
REM echo FolderType=Generic >> Desktop.ini

attrib +s +h Desktop.ini
attrib +s +r %~1

popd

echo und Fertig
pause

Content-ID: 246109

Url: https://administrator.de/contentid/246109

Ausgedruckt am: 17.11.2024 um 15:11 Uhr

Pjordorf
Pjordorf 10.08.2014 um 18:04:37 Uhr
Goto Top
Hallo,

Zitat von @batchnewbie:
Ich möchte das Icon des Ordner per Senden an verändern.
Der Ordner "per Senden an" oder der Ordner "Senden an"?

@echo off & title %~n0
Mach erst mal dein @echo off aus damit du siehst was denn passieren soll

copy SetIcon.bat %APPDATA%\Microsoft\Windows\SendTo & echo Ins SendTo Ordner kopiert & pause & exit)
Woher kommt die Seticon.bat und sicher das deine Seticon.bat welche ja wohl gerade Geöffnet ist auch kopiert werden kann? Deine gerade laufende Batch nennt sich doch Seticon.bat" oder?

Gruß,
Peter
batchnewbie
batchnewbie 10.08.2014 aktualisiert um 22:09:52 Uhr
Goto Top
Hi,
ich hab mich etwas Falsch ausgedrückt, ich möchte das Icon von Ordner zb. c:\XYZ ändern. Das neue Icon liegt schon in dem Verzeichnis drin (Per For Schleife bekomme ich diese dann raus) Ich schicke also das ausgewählte Ordner per Rechtsklick an Senden an und wähle die SetIcon.bat, diese soll dann die Desktop.ini verändern, das tut sie auch, aber das Icon wird nicht verändert.
Ich glaube es liegt an den Attribute des Ordners.

Nachtrag:
Ich hab den Code jetzt Angepasst und es funktioniert nur, wenn ich als zweite Maßnahme, Rechtsklick auf das Ordner, dann auf die Eigenschaften, Registerkarte Anpassen und OK klicke face-plain das ganze ist irgendwie merkwürdig.
@echo on & title %~n0
cls

if not exist %APPDATA%\Microsoft\Windows\SendTo\SetIcon.bat (
copy SetIcon.bat %APPDATA%\Microsoft\Windows\SendTo & echo Ins SendTo Ordner kopiert & pause & exit)

pushd "%~1"  

for /f "delims=" %%i in ('dir /b /a-d "*.ico"') do set "IconName=%%i"  

attrib -s -r %~1
if exist Desktop.ini attrib -s -h Desktop.ini

echo [.ShellClassInfo]>Desktop.ini
echo IconResource=%~1\%IconName%,0 >> Desktop.ini
echo InfoTip=%~n0>>Desktop.ini

attrib +s +h Desktop.ini
attrib +s +r %~1

popd

pause
Friemler
Friemler 21.08.2014 um 14:06:28 Uhr
Goto Top
Hallo,

es könnte sein, dass ein Caching-Mechanismus im Windows Explorer die Aktualisierung des Icons verhindert. Teste mal folgendes:

  1. Taskmanager öffnen
  2. Explorer-Prozess beenden
  3. Im Taskmanager "Menü Datei -> Neuer Task (Ausführen)" anklicken
  4. explorer eingeben und OK klicken

Wenn das Icon danach korrekt dargestellt wird, liegt es am Icon Cache des Explorers.

Wenn man per Google nach explorer refresh icons sucht, finden sich mehrere Ansätze, einige automatisieren den obigen Ablauf per Batchscript. Oft findet man auch den Hinweis auf folgende Befehlszeile:
ie4uinit.exe -ClearIconCache
Was für Dich funktioniert, musst Du selbst herausfinden.

Gruß
Friemler