如何编辑快捷方式名称已注册文本的快捷方式属性 ®

2024-01-16

我正在尝试使用批处理脚本编辑快捷方式的属性。但快捷方式名称包含一个字符 ®,因此当我运行 changeproperties.bat 文件时,它无法正确读取文件名。我可以通过 powershell 完成相同的任务。 我的 powershell 脚本有下面一行并且它可以工作

    $shortCut = ("$desktop\testapp®.lnk")
    $shell = New-Object -COM WScript.Shell
    $shortcut = $shell.CreateShortcut($shortCut)  ## Open the lnk
    $shortcut.TargetPath = "C:\Users\Public\newtarget.bat"
    $shortCut.Save()

我将运行此程序的计算机将无权运行 powershell。因此尝试编写类似的bat文件。

    echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
    echo sLinkFile = "%USERPROFILE%\Desktop\testapp®©.lnk" >> %SCRIPT%
    echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
    echo oLink.TargetPath = "C:\Users\Public\newtarget.bat" >> %SCRIPT%
    echo oLink.Save >> %SCRIPT%

但这是行不通的。当我运行时,它会创建带有额外添加的特殊字符的快捷方式,例如这个 testapp©。

如何纠正这个问题。


Using a 批处理 + VBScript 混合 https://stackoverflow.com/a/9074483/1683264该解决方案可以让您规避任何批处理代码页问题,并且无需将 VBScript 代码回显到辅助脚本。

<!-- : Begin batch script
@echo off
cscript //nologo "%~f0?.wsf"
exit /b

----- Begin wsf script --->
<job><script language="VBScript">
    Set oWS = WScript.CreateObject("WScript.Shell")
    userProfile = oWS.Environment("Process").Item("USERPROFILE")
    sLinkFile = userProfile & "\Desktop\testapp®.lnk"
    Set oLink = oWS.CreateShortcut(sLinkFile)
    oLink.TargetPath = "C:\Users\Public\newtarget.bat"
    oLink.Save
</script></job>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编辑快捷方式名称已注册文本的快捷方式属性 ® 的相关文章

随机推荐