44

我想知道将.bat文件图标实际设置为任意图标的方法是什么。我将如何以编程方式执行此操作,而与我可能使用的语言无关。

4

11 回答 11

45

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

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

于 2008-08-19T00:37:11.500 回答
14

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

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

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

https://devblogs.microsoft.com/scripting/how-can-i-change-the-icon-for-an-existing-shortcut/

Const DESKTOP = &H10&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(DESKTOP)
Set objFolderItem = objFolder.ParseName("Test Shortcut.lnk")
Set objShortcut = objFolderItem.GetLink
objShortcut.SetIconLocation "C:\Windows\System32\SHELL32.dll", 13
objShortcut.Save
于 2013-02-04T13:35:12.757 回答
12

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

https://web.archive.org/web/20190304134631/http://www.f2ko.de/en/b2e.php

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

于 2011-01-07T13:46:48.267 回答
8

Shell (Explorer) 为批处理文件显示的图标由注册表项确定

HKCR\batfile\DefaultIcon

在我的电脑上是

%SystemRoot%\System32\imageres.dll,-68

您可以将其设置为您喜欢的任何图标。

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

于 2009-05-13T07:58:24.280 回答
5

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

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

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

这里有一些不错的图标:

%SystemRoot%\System32\SHELL32.dll

注意在 Windows 10 上对我来说:%SystemRoot% == C:\Windows\

更多图标在这里:C:\Windows\System32\imageres.dll

此外,如果您将批处理文件存放在 bat 子目录中,您可能希望批处理文件中的第一行为“cd ..”,而该子目录应低于您的快捷方式应该执行的位置。

于 2018-01-31T23:38:54.473 回答
4

实现这一目标的方法之一是:

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

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

于 2010-10-19T06:00:56.793 回答
2

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

于 2013-09-23T12:31:53.440 回答
1

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

您可以尝试更改文件关联,但该方法可能因您使用的 Windows 版本而异。这与 XP 中的注册表有关,但我不确定 Vista。

于 2008-08-19T00:35:56.917 回答
1

尝试使用shortcutjs.bat创建快捷方式:

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

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

于 2020-11-09T19:38:29.703 回答
0

您可以使用 BAT 到 EXE 转换器之类的程序,例如:link

在此处输入图像描述

该程序允许您添加自定义图标。

于 2021-12-22T10:26:54.010 回答
-2

我建议使用 BAT 到 EXE 转换器以满足您的需求

于 2018-03-18T11:30:17.707 回答