我现在可能需要你的帮助,我一直在谷歌搜索但是我没有得到真正的答案,所以我平衡我的问题。
如何获取.exe
文件的图标并使用批处理代码保存到硬盘?
感谢
答案 0 :(得分:1)
扩展上面建议的wOxxOm,您可以在批处理脚本中使用PowerShell命令执行此操作,如下所示:
@echo off
setlocal
set "exe_in=%~1"
set "ico_out=%~2"
set "psCommand="[void][Reflection.Assembly]::LoadWithPartialName('System.Drawing');^
[Drawing.Icon]::ExtractAssociatedIcon(\"%exe_in%\").ToBitmap().Save(\"%ico_out%\")""
powershell -noprofile -noninteractive %psCommand%
使用示例:
script.bat c:\portaputty\putty.exe putty.ico
...会将putty.ico保存到当前工作目录。
或者如果你想让脚本保存到basename.ico
而不必指定参数2,你可以这样修饰:
@echo off
setlocal
set "exe_in=%~1"
set "out_dir=."
if not "%~2"=="" 2>NUL pushd "%~2" && ( call set "out_dir=%%CD%%" & popd )
set "ico_out=%out_dir%\%~n1.ico"
set "psCommand="[void][Reflection.Assembly]::LoadWithPartialName('System.Drawing');^
[Drawing.Icon]::ExtractAssociatedIcon(\"%exe_in%\").ToBitmap().Save(\"%ico_out%\")""
powershell -noprofile -noninteractive %psCommand%
使用示例:
script.bat c:\portaputty\putty.exe
...会将putty.ico保存到当前工作目录。
script.bat c:\portaputty\putty.exe "%temp%"
...将保存%temp%\ putty.ico。