[CMD] Как применить нужную иконку на файле через CMD

Denis2707

Постоянный участник
Сообщения
102
Реакции
3
Помогите, пожалуйста!
Как через батник можна поменять иконку на ярлыке?
Пример:
на рабочом столе есть ярлык book.url - на нём нужно применить иконку которая находиться в C:\programdata\fox.ico
 
@AssistGPT, с тебя решение.
Для изменения иконки ярлыка через .bat файл вам потребуется использовать команду PowerShell внутри .bat файла. Вот пример скрипта, который вы можете использовать:

1. Откройте текстовый редактор (например, Блокнот) и вставьте следующий код:

Bash:
@echo off
set iconPath=C:\programdata\fox.ico
set shortcutPath=book.url

PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"

2. Замените C:\programdata\fox.ico на путь к вашей иконке и book.url на путь к вашему ярлыку.

3. Сохраните файл с расширением .bat (например, change_icon.bat).

4. Запустите .bat файл (просто двойным кликом по нему). Иконка на ярлыке должна измениться на указанную вами иконку.

Пожалуйста, убедитесь, что пути к файлам указаны правильно, и что у вас есть необходимые права доступа для изменения ярлыков. Если у вас возникнут проблемы или вопросы, не стесняйтесь обращаться за помощью!
 
Для изменения иконки ярлыка через .bat файл вам потребуется использовать команду PowerShell внутри .bat файла. Вот пример скрипта, который вы можете использовать:

1. Откройте текстовый редактор (например, Блокнот) и вставьте следующий код:

Bash:
@echo off
set iconPath=C:\programdata\fox.ico
set shortcutPath=book.url

PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"

2. Замените C:\programdata\fox.ico на путь к вашей иконке и book.url на путь к вашему ярлыку.

3. Сохраните файл с расширением .bat (например, change_icon.bat).

4. Запустите .bat файл (просто двойным кликом по нему). Иконка на ярлыке должна измениться на указанную вами иконку.

Пожалуйста, убедитесь, что пути к файлам указаны правильно, и что у вас есть необходимые права доступа для изменения ярлыков. Если у вас возникнут проблемы или вопросы, не стесняйтесь обращаться за помощью!
супер, списибо:Good:
 
Пожалуйста! Рад был помочь! Если у вас возникнут другие вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться. Удачи!:)
Для изменения иконки ярлыка через .bat файл вам потребуется использовать команду PowerShell внутри .bat файла. Вот пример скрипта, который вы можете использовать:

1. Откройте текстовый редактор (например, Блокнот) и вставьте следующий код:

Bash:
@echo off
set iconPath=C:\programdata\fox.ico
set shortcutPath=book.url

PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"

2. Замените C:\programdata\fox.ico на путь к вашей иконке и book.url на путь к вашему ярлыку.

3. Сохраните файл с расширением .bat (например, change_icon.bat).

4. Запустите .bat файл (просто двойным кликом по нему). Иконка на ярлыке должна измениться на указанную вами иконку.

Пожалуйста, убедитесь, что пути к файлам указаны правильно, и что у вас есть необходимые права доступа для изменения ярлыков. Если у вас возникнут проблемы или вопросы, не стесняйтесь обращаться за помощью!
 
set iconPath=C:\ProgramData\fox.ico
set shortcutPath=%ALLUSERPROFILE%\book.url
PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"
 
Последнее редактирование модератором:
Если у вас есть ещё вопросы или нужна помощь, не стесняйтесь спрашивать! Я здесь, чтобы помочь вам.
1712186660171.webp
 
У Вас ошибка появляется скорей всего, это происходит потому, что вы пытаетесь создать ярлык для веб-ссылки (.url), а не для приложения или файла.
А для данного тип создаваемого объекта ярлыка не поддерживает свойство IconLocation
Вам нужно создать именно book.lnk но в свойства ярлыка указать уже программу которая будет окрывать ссылкку судя по всему

Код:
set iconPath=C:\ProgramData\fox.ico
set shortcutPath=%ALLUSERPROFILE%\Desktop\NotepadShortcut.lnk
PowerShell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut($env:shortcutPath); $Shortcut.TargetPath = 'тут путь до браузеры https://google.com'; $Shortcut.IconLocation = 'C:\ProgramData\fox.ico'; $Shortcut.Save()"
 
Если у вас есть ещё вопросы или нужна помощь, не стесняйтесь спрашивать! Я здесь, чтобы помочь вам.
Exception setting "IconLocation": "The property 'IconLocation' cannot be found on this object. Verify that the property exists and can be set."
At line:1 char:96
  • ... book.url'); $shortcut.IconLocation = 'C:\ProgramData\fox.ico'; $short ...
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( : ) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting
 
Последнее редактирование:
Exception setting "IconLocation": "The property 'IconLocation' cannot be found on this object. Verify that the property exists and can be set."
At line:1 char:96
  • ... book.url'); $shortcut.IconLocation = 'C:\ProgramData\fox.ico'; $short ...
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting
Кажется, ошибка возникает из-за того, что свойство "IconLocation" не поддерживается для создания ярлыков веб-ссылок (.url). Вместо этого, вам нужно создать ярлык (.lnk) для программы, которая будет открывать ссылку.

Попробуйте использовать следующий скрипт, чтобы создать ярлык для открытия ссылки в браузере:

Bash:
set iconPath=C:\ProgramData\fox.ico
set shortcutPath=%ALLUSERPROFILE%\Desktop\BrowserShortcut.lnk
PowerShell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut($env:shortcutPath); $Shortcut.TargetPath = 'путь_к_браузеру https://google.com'; $Shortcut.IconLocation = 'C:\ProgramData\fox.ico'; $Shortcut.Save()"

Замените 'путь_к_браузеру https://google.com' на путь к вашему браузеру и ссылку, которую вы хотите открыть. После этого запустите скрипт и проверьте, помогло ли это решить проблему. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
 
CMD/BATCH:
<# :
  @echo off
    setlocal
      powershell /noprofile /executionpolicy bypass^
      "&{[ScriptBlock]::Create((Get-Content '%~f0') -join [Char]10).Invoke(@(&{$args}%*))}"
    endlocal
  exit /b
#>
$shortcutPath=$env:UserProfile + '\Desktop\BrowserShortcut.lnk';
$WshShell = New-Object -ComObject WScript.Shell;
$Shortcut = $WshShell.CreateShortcut($shortcutPath);
$Shortcut.TargetPath = 'explorer.exe';
$Shortcut.Arguments = 'https://google.com';
$Shortcut.IconLocation = 'c:\path\help.ico';
$Shortcut.Save();
 
Кажется, ошибка возникает из-за того, что свойство "IconLocation" не поддерживается для создания ярлыков веб-ссылок (.url). Вместо этого, вам нужно создать ярлык (.lnk) для программы, которая будет открывать ссылку.

Попробуйте использовать следующий скрипт, чтобы создать ярлык для открытия ссылки в браузере:

Bash:
set iconPath=C:\ProgramData\fox.ico
set shortcutPath=%ALLUSERPROFILE%\Desktop\BrowserShortcut.lnk
PowerShell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut($env:shortcutPath); $Shortcut.TargetPath = 'путь_к_браузеру https://google.com'; $Shortcut.IconLocation = 'C:\ProgramData\fox.ico'; $Shortcut.Save()"

Замените 'путь_к_браузеру https://google.com' на путь к вашему браузеру и ссылку, которую вы хотите открыть. После этого запустите скрипт и проверьте, помогло ли это решить проблему. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
Не помогло. Батник будет использоватться на разных ПК, поэтому нет одинакового пути к браузерам.
Может лучше добавить сначала код по созданию ярлыка для веб-ссылки (.url) перед кодом применения иконки?
Не подскажите универсальный код (будет использоваться на разных ПК/версиях Windows) для создания ярлыка для веб-ссылки (.url)?
 
Не помогло. Батник будет использоватться на разных ПК, поэтому нет одинакового пути к браузерам.
Может лучше добавить сначала код по созданию ярлыка для веб-ссылки (.url) перед кодом применения иконки?
Не подскажите универсальный код (будет использоваться на разных ПК/версиях Windows) для создания ярлыка для веб-ссылки (.url)?
Для создания ярлыка для веб-ссылки (.url) на разных ПК с разными путями к браузерам, можно воспользоваться следующим скриптом:

CMD/BATCH:
@echo off
setlocal

set shortcutPath=%USERPROFILE%\Desktop\BrowserShortcut.url
set url=https://www.google.com

echo [InternetShortcut] > "%shortcutPath%"
echo URL=%url% >> "%shortcutPath%"

endlocal

Этот скрипт создаст ярлык на рабочем столе, который будет открывать указанную веб-ссылку в браузере по умолчанию. Просто замените url=https://www.google.com на нужную вам веб-ссылку.

Попробуйте запустить этот скрипт на разных ПК и проверьте, поможет ли это создать ярлык для веб-ссылки (.url) без ошибок. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
 
Для создания ярлыка для веб-ссылки (.url) на разных ПК с разными путями к браузерам, можно воспользоваться следующим скриптом:

CMD/BATCH:
@echo off
setlocal

set shortcutPath=%USERPROFILE%\Desktop\BrowserShortcut.url
set url=https://www.google.com

echo [InternetShortcut] > "%shortcutPath%"
echo URL=%url% >> "%shortcutPath%"

endlocal

Этот скрипт создаст ярлык на рабочем столе, который будет открывать указанную веб-ссылку в браузере по умолчанию. Просто замените url=https://www.google.com на нужную вам веб-ссылку.

Попробуйте запустить этот скрипт на разных ПК и проверьте, поможет ли это создать ярлык для веб-ссылки (.url) без ошибок. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
Ой, я ошибся, не для url, а для lnk.
Сделал следующий скрипт, создаёт lnk и применяет заданую иконку, но созданая lnk не октрываеться.
Подскажите, пожалуйста, что не так?

@echo off

setlocal
set shortcutPath=%USERPROFILE%\Desktop\book.lnk
set url=https://google.com
echo [InternetShortcut] > "%shortcutPath%"
echo URL=%url% >> "%shortcutPath%"
endlocal

set iconPath=C:\programdata\fox.ico
set shortcutPath=%USERPROFILE%\Desktop\book.lnk
PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"
 
Ой, я ошибся, не для url, а для lnk.
Сделал следующий скрипт, создаёт lnk и применяет заданую иконку, но созданая lnk не октрываеться.
Подскажите, пожалуйста, что не так?

@echo off

setlocal
set shortcutPath=%USERPROFILE%\Desktop\book.lnk
set url=https://google.com
echo [InternetShortcut] > "%shortcutPath%"
echo URL=%url% >> "%shortcutPath%"
endlocal

set iconPath=C:\programdata\fox.ico
set shortcutPath=%USERPROFILE%\Desktop\book.lnk
PowerShell -Command "$shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut('%shortcutPath%'); $shortcut.IconLocation = '%iconPath%'; $shortcut.Save()"
Для создания ярлыка (.lnk) с заданной иконкой и корректной ссылкой, вам нужно убедиться, что путь к файлу иконки и ссылке указаны правильно. Попробуйте следующий скрипт:

CMD/BATCH:
@echo off
setlocal

set shortcutPath=%USERPROFILE%\Desktop\book.lnk
set targetPath=https://www.google.com
set iconPath=C:\ProgramData\fox.ico

echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%shortcutPath%" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "%targetPath%" >> CreateShortcut.vbs
echo oLink.IconLocation = "%iconPath%" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs

cscript CreateShortcut.vbs
del CreateShortcut.vbs

endlocal

Этот скрипт создаст ярлык "book.lnk" на рабочем столе, который будет открывать ссылку "https://www.google.com" и использовать иконку из файла "C:\ProgramData\fox.ico". Попробуйте запустить этот скрипт и проверьте, работает ли созданный ярлык корректно. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
 
Для создания ярлыка (.lnk) с заданной иконкой и корректной ссылкой, вам нужно убедиться, что путь к файлу иконки и ссылке указаны правильно. Попробуйте следующий скрипт:

CMD/BATCH:
@echo off
setlocal

set shortcutPath=%USERPROFILE%\Desktop\book.lnk
set targetPath=https://www.google.com
set iconPath=C:\ProgramData\fox.ico

echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%shortcutPath%" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "%targetPath%" >> CreateShortcut.vbs
echo oLink.IconLocation = "%iconPath%" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs

cscript CreateShortcut.vbs
del CreateShortcut.vbs

endlocal

Этот скрипт создаст ярлык "book.lnk" на рабочем столе, который будет открывать ссылку "https://www.google.com" и использовать иконку из файла "C:\ProgramData\fox.ico". Попробуйте запустить этот скрипт и проверьте, работает ли созданный ярлык корректно. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
Супер! Всё работает как надо
 
Назад
Сверху Снизу