Windows 如何以编程方式更改.bat文件的图标?

Windows 如何以编程方式更改.bat文件的图标?,windows,icons,batch-file,Windows,Icons,Batch File,我想知道如何将.bat文件的图标实际设置为任意图标。 我将如何以编程的方式独立于我可能使用的语言来实现这一点。我假设您正在谈论Windows,对吗?我不相信你可以直接更改批处理文件的图标。图标嵌入在.EXE和.DLL文件中,或由.LNK文件指向 您可以尝试更改文件关联,但这种方法可能因您使用的Windows版本而异。XP中的注册表有问题,但我对Vista不太清楚。假设您指的是MS-DOS批处理文件:因为它只是一个带有特殊扩展名的文本文件,.bat文件不存储自己的图标 但是,您可以以.lnk格式创

我想知道如何将
.bat
文件的图标实际设置为任意图标。
我将如何以编程的方式独立于我可能使用的语言来实现这一点。

我假设您正在谈论Windows,对吗?我不相信你可以直接更改批处理文件的图标。图标嵌入在.EXE和.DLL文件中,或由.LNK文件指向


您可以尝试更改文件关联,但这种方法可能因您使用的Windows版本而异。XP中的注册表有问题,但我对Vista不太清楚。

假设您指的是MS-DOS批处理文件:因为它只是一个带有特殊扩展名的文本文件,
.bat
文件不存储自己的图标


但是,您可以以
.lnk
格式创建一个快捷方式,用于存储图标。

Shell(资源管理器)为批处理文件显示的图标由注册表项决定

HKCR\batfile\DefaultIcon
在我的电脑上是

%SystemRoot%\System32\imageres.dll,-68
您可以将其设置为您喜欢的任何图标


但是,这将更改所有批处理文件的图标(除非它们具有扩展名
.cmd
)。

实现这一点的方法之一是:

  • 创建一个可执行的Jar文件
  • 创建一个批处理文件来运行上述jar并启动桌面java应用程序
  • 使用Batch2Exe转换器并将批处理文件转换为Exe
  • 在上述转换过程中,您可以将图标更改为您选择的图标。(必须是有效的.ico文件)
  • 将上述exe的快捷方式放在桌面上

  • 现在,您的java程序可以像任何其他MSWindows应用程序一样以一种奇特的方式打开。!:)

    您可以从这里使用
    Bat-to-Exe
    转换器:


    这会将批处理文件转换为可执行文件,然后您可以设置转换文件的图标。

    您只需创建一个快捷方式,然后右键单击它->属性->更改图标,然后浏览所需的图标即可。 希望这有帮助

    要以编程方式设置快捷方式的图标,请参阅本文使用
    SetIconLocation

    如何更改现有快捷方式的图标?:


    试试BatToExe转换器。它会将批处理文件转换为可执行文件,并允许您为其设置图标。

    如果您需要批处理文件的图标, 首先为批处理文件创建一个链接,如下所示

    在需要链接的窗口文件夹中单击鼠标右键 选择新建->快捷方式,然后指定.bat文件的位置

    这将创建所需的.lnk文件。 然后您可以为链接指定一个图标, 在其属性页上

    这里有一些不错的图标:

    %SystemRoot%\System32\SHELL32.dll

    Windows 10上的注意事项: %SystemRoot%==C:\Windows\

    更多图标如下: C:\Windows\System32\imageres.dll

    另外,您可能需要第一行 批处理文件中的“cd…” 如果将批处理文件保存在bat子目录中
    下面的一个级别是您的快捷方式应该执行的位置。

    我建议您根据自己的愿望使用BAT-to-EXE转换器。

    尝试创建快捷方式:

    call shortcutjs.bat -linkfile mybat3.lnk -target "%cd%\Ascii2All.bat" -iconlocation "%SystemRoot%\System32\SHELL32.dll,77"
    

    您可以使用-iconlocation开关指向图标。

    我猜您错过了那里的“编程方式”。我猜您错过了那里的“编程方式”。它还允许使用“不可见应用程序”抑制cmd窗口选项。该链接将我引向一个网站,在那里我必须允许coinhive矿工下载一些东西。@Akerus试试这个-@GabrielH Genius使用wayback机器下载文件,它工作得非常好!请看一看。此答案太短,不能为您的建议提供动力,也没有显示任何代码或资源来实际获得解决方案。这不会以编程方式更改它,并且.lnk无法移动到其他文件夹
    call shortcutjs.bat -linkfile mybat3.lnk -target "%cd%\Ascii2All.bat" -iconlocation "%SystemRoot%\System32\SHELL32.dll,77"