【问题标题】:How to change the icon of .bat file programmatically?如何以编程方式更改 .bat 文件的图标?
【发布时间】:2008-08-19 00:21:12
【问题描述】:

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

【问题讨论】:

    标签: windows icons batch-file


    【解决方案1】:

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

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

    【讨论】:

    • 这不会以编程方式更改它,并且 .lnk 不能移动到另一个文件夹
    【解决方案2】:

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

    要以编程方式设置快捷方式的图标,请参阅本文使用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
    

    【讨论】:

    • 我猜你错过了那里的“程序化”。
    【解决方案3】:

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

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

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

    这里有一些不错的图标:

    %SystemRoot%\System32\SHELL32.dll

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

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

    你也可能想要第一行 在批处理文件中为“cd ..” 如果您将批处理文件存放在 bat 子目录中 比你的快捷方式应该执行的位置低一级。

    【讨论】:

      【解决方案4】:

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

      HKCR\batfile\DefaultIcon
      

      在我的电脑上是

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

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 我猜你错过了那里的“程序化”。
        【解决方案6】:

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

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

          • 请查看How do I write a good answer?。这个答案太短了,没有为您的建议提供动力,也没有显示任何代码或资源来实际获得解决方案。
          【解决方案8】:

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

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

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

          【讨论】:

          【解决方案9】:

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

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

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

          【讨论】:

            【解决方案10】:

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

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

            【讨论】:

              【解决方案11】:

              您可以使用像 BAT 到 EXE 转换器这样的程序,例如:link

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2011-02-02
                • 2011-05-14
                • 1970-01-01
                • 1970-01-01
                • 2012-08-17
                • 1970-01-01
                • 2017-12-14
                相关资源
                最近更新 更多