我正在尝试使用批处理脚本编辑快捷方式的属性。但是快捷方式名称包含一个字符®因此当我运行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©。
如何纠正此问题。
答案 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