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

时间:2016-04-06 18:04:24

标签: powershell batch-file special-characters shortcut

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

    $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©。

如何纠正此问题。

2 个答案:

答案 0 :(得分:3)

使用Batch + VBScript hybrid解决方案可以避免任何批处理代码页问题,并且无需将VBScript代码回显到辅助脚本。

document.querySelector('#clicker').addEventListener('click', toggleC);

答案 1 :(得分:2)

您应首先使用Notepad++ ANSI保存文件 然后执行此代码,它将适合您。

@echo off
(   
    echo Set oWS = CreateObject("WScript.Shell"^)
    echo sLinkFile = "%USERPROFILE%\Desktop\testapp®.lnk"
    echo Set oLink = oWS.CreateShortcut(sLinkFile^)
    echo oLink.TargetPath = "C:\Users\Public\newtarget.bat"
    echo oLink.Save
)>%tmp%\%~n0.vbs
cscript /nologo %tmp%\%~n0.vbs