Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Извлечение .ico файлов

Ответить
Настройки темы
CMD/BAT - [решено] Извлечение .ico файлов

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Необходимо извлечь из .exe файла .ico при помощи BAT (можно использовать сторонние утилиты).
Я нашел одну утилиту - iconsext, но она извлекает все иконки, а надо чтобы извлекала первую.

Отправлено: 15:08, 09-11-2016

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата vickt:
Необходимо извлечь из .exe файла .ico при помощи BAT (можно использовать сторонние утилиты)
Как на счет PowerShell?
Код: Выделить весь код
Add-Type -AssemblyName System.Drawing
$ico = [Drawing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe')

$ms = New-Object IO.MemoryStream
$ico.Save($ms)
[IO.File]::WriteAllBytes('C:\output\1.ico', $ms.ToArray())

$ms.Dispose()
$ico.Dispose()

Последний раз редактировалось greg zakharov, 09-11-2016 в 19:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:19, 09-11-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Как на счет PowerShell? »
Я в Bat файлах далекий, а PowerShell для меня - темный лес.
Пытался его запустить через Bat, не получилось, а через powershell_ise.exe выдает ошибку.
Скрытый текст
PS C:\Windows\System32\WindowsPowerShell\v1.0> C:\Downloads\New.ps1
Невозможно загрузить файл C:\Downloads\New.ps1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Executio
n_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170.
+ CategoryInfo : Ошибка безопасности: ( [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS C:\Windows\System32\WindowsPowerShell\v1.0>

Отправлено: 17:33, 09-11-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


vickt, так пройдите по указанному адресу, прочитайте и включите исполнение неподписанных локальных скриптов.
Код: Выделить весь код
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Отправлено: 18:14, 09-11-2016 | #4


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned »
Я уже отключил политику выполнения Windows PowerShell.
Выдает следующее через powershell_ise.exe
Скрытый текст
PS C:\Windows\System32\WindowsPowerShell\v1.0> C:\Downloads\New.ps1
Не удалось найти тип [Drwaing.Icon].
C:\Downloads\New.ps1:2 знак:8
+ $ico = [Drwaing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe ...
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Drwaing.Icon:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound

Невозможно вызвать метод для выражения со значением NULL.
C:\Downloads\New.ps1:5 знак:1
+ $ico.Save($ms)
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Исключение при вызове "WriteAllBytes" с "2" аргументами: "Не удалось найти часть пути "C:\output\1.ico"."
C:\Downloads\New.ps1:6 знак:1
+ [IO.File]::WriteAllBytes('C:\output\1.ico', $ms.ToArray())
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DirectoryNotFoundException

Невозможно вызвать метод для выражения со значением NULL.
C:\Downloads\New.ps1:9 знак:1
+ $ico.Dispose()
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull


PS C:\Windows\System32\WindowsPowerShell\v1.0>


Мне надо запустить из Bat файла. Как это сделать?

Отправлено: 18:33, 09-11-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


vickt, поменяйте во второй строке:
Код: Выделить весь код
$ico = [Drwaing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe')
на:
Код: Выделить весь код
$ico = [Drawing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe')

Отправлено: 19:22, 09-11-2016 | #6


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


vickt, сохраните как бат, например, iconer.cmd:
Код: Выделить весь код
<# :
  @echo off
    setlocal
      powershell /noprofile /executionpolicy bypass^
      "&{[ScriptBlock]::Create((Get-Content '%~f0') -join [Char]10).Invoke(@(&{$args}%*))}"
    endlocal
  exit /b
#>
Add-Type -AssemblyName System.Drawing

try {
  $ico = [Drawing.Icon]::ExtractAssociatedIcon($args[0])
  
  $ms = New-Object IO.MemoryStream
  $ico.Save($ms)
  [IO.File]::WriteAllBytes($args[1], $ms.ToArray())
}
catch { $_ }
finally {
  if ($ms) { $ms.Dispose() }
  if ($ico ) { $ico.Dispose() }
}
Пример вызова будет выглядеть так:
Код: Выделить весь код
iconer.cmd C:\Windows\explorer.exe E:\out\1.ico
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:32, 09-11-2016 | #7


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое Всем спасибо.

Отправлено: 22:03, 09-11-2016 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Извлечение .ico файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Проводник не показывает иконки файлов *.ico Akella2007 Microsoft Windows 2000/XP 16 24-04-2020 10:29
Обои и Значки - Посоветуйте программу для сжатия ICO файлов Amiranchik Оформление Windows 11/ 10 / 8 / 7 / Vista 6 18-10-2012 21:50
AutoExtract 16x16.ico; 32x32.ico; .... from file semiono Автоматическая установка приложений 1 08-10-2010 14:43
Интерфейс - [решено] Отображение файлов *.ico в проводнике в виде самих иконок (режим-плитка) clem Microsoft Windows 2000/XP 6 21-02-2008 09:57
Извлечение файлов wolland Microsoft Windows 95/98/Me (архив) 1 18-07-2003 16:19




 
Переход