CMD/BAT - [решено] Извлечение .ico файлов
-
vickt
CMD/BAT - [решено] Извлечение .ico файлов
Необходимо извлечь из .exe файла .ico при помощи BAT (можно использовать сторонние утилиты).
Я нашел одну утилиту - iconsext, но она извлекает все иконки, а надо чтобы извлекала первую.
Я нашел одну утилиту - iconsext, но она извлекает все иконки, а надо чтобы извлекала первую.
-
vickt
Re: CMD/BAT - [решено] Извлечение .ico файлов
Цитата vickt:
Необходимо извлечь из .exe файла .ico при помощи BAT (можно использовать сторонние утилиты)
Как на счет PowerShell?
Код:
Необходимо извлечь из .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()-
vickt
Re: CMD/BAT - [решено] Извлечение .ico файлов
Цитата greg zakharov:
Как на счет PowerShell?
Я в Bat файлах далекий, а PowerShell для меня - темный лес.
Пытался его запустить через Bat, не получилось, а через powershell_ise.exe выдает ошибку.
Скрытый текст
[spoiler]PS C:\Windows\System32\WindowsPowerShell\v1.0> C:\Downloads\New.ps1
Невозможно загрузить файл C:\Downloads\New.ps1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Executio
n_Policies по адресу
+ CategoryInfo : Ошибка безопасности: (
[], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Windows\System32\WindowsPowerShell\v1.0>[/spoiler]
Как на счет PowerShell?
CMD/BAT - [решено] Извлечение .ico файлов
Я в Bat файлах далекий, а PowerShell для меня - темный лес.
Пытался его запустить через Bat, не получилось, а через powershell_ise.exe выдает ошибку.
Скрытый текст
[spoiler]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>[/spoiler]
-
Iska
Re: CMD/BAT - [решено] Извлечение .ico файлов
vickt, так пройдите по указанному адресу, прочитайте и включите исполнение неподписанных локальных скриптов.
Код:
Код:
Код: Выделить всё
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned-
vickt
Re: CMD/BAT - [решено] Извлечение .ico файлов
Цитата Iska:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Я уже отключил политику выполнения Windows PowerShell.
Выдает следующее через powershell_ise.exe
Скрытый текст
[spoiler]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>[/spoiler]
Мне надо запустить из Bat файла. Как это сделать?
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
CMD/BAT - [решено] Извлечение .ico файлов
Я уже отключил политику выполнения Windows PowerShell.
Выдает следующее через powershell_ise.exe
Скрытый текст
[spoiler]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>[/spoiler]
Мне надо запустить из Bat файла. Как это сделать?
-
Iska
Re: CMD/BAT - [решено] Извлечение .ico файлов
vickt, поменяйте во второй строке:
Код:
на:
Код:
Код:
Код: Выделить всё
$ico = [Drwaing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe')на:
Код:
Код: Выделить всё
$ico = [Drawing.Icon]::ExtractAssociatedIcon('C:\Windows\explorer.exe')-
greg zakharov
Re: CMD/BAT - [решено] Извлечение .ico файлов
vickt, сохраните как бат, например, iconer.cmd:
Код:
Пример вызова будет выглядеть так:
Код:
Код:
Код: Выделить всё
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