无忧启动论坛

标题: 关于用cmd或者powershell实现pin到开始屏幕 [打印本页]

作者: wjgyz740526    时间: 2024-7-29 15:19
标题: 关于用cmd或者powershell实现pin到开始屏幕
想要用命令行实现批量pin程序到开始屏幕,搜了下,
第一段代码(cmd)如下:

@echo off
SetLocal EnableDelayedExpansion

set "lnk_list=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\工具\"
for /f %%a in ('dir /b "%lnk_list%"') do (
rem explorer.exe shell:::{41FE75BD-F65B-4797-89D6-8C6E7B3E3F31} && timeout /t 2 /nobreak——这行不注释直接报错
powershell -command "(New-Object -ComObject shell.application).Namespace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items().item('%%~nxa').InvokeVerb('PinToStartScreen')"
)
echo Done!
exit


运行后报错,提示:
不能对 Null 值表达式调用方法。
所在位置 行:1 字符: 1
+ (New-Object -ComObject shell.application).Namespace('shell:::{4234d49 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [],RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull





第二段代码(powershell)如下:

function Pin-App {
    param(
        [string]$appname,
        [switch]$unpin
    )
    try {
        if ($unpin.IsPresent) {
            ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ? { $_.Name -eq $appname }).Verbs() | ? { $_.Name.replace('&', '') -match 'From "Start" UnPin|Unpin from Start' } | % { $_.DoIt() }
            return "App '$appname' unpinned from Start"
        }
        else {
            ((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ? { $_.Name -eq $appname }).Verbs() | ? { $_.Name.replace('&', '') -match 'To "Start" Pin|Pin to Start' } | % { $_.DoIt() }
            return "App '$appname' pinned to Start"
        }
    }
    catch {
        Write-Error "Error Pinning/Unpinning App! (App-Name correct?)"
    }
}

  Pin-App "微信"
  Pin-App "腾讯QQ"
  Pin-App "360极速浏览器"
  pause



运行后提示成功,但实际无效果。

有哪位精通powershell的给点帮助?

作者: china.gaofeng    时间: 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小工具:
www。technosys。net/products/utils/pintotaskbar
(自行替换。)
作者: wjgyz740526    时间: 2024-7-29 16:20
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

感谢回复

回头测试下
作者: 602579701    时间: 2024-7-29 17:10
学习学习
作者: wjgyz740526    时间: 2024-7-29 17:29
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

win10测试成功,win11提示成功但实际无效

感谢,有支持win11版本的吗?
作者: china.gaofeng    时间: 2024-7-29 17:47
wjgyz740526 发表于 2024-7-29 17:29
win10测试成功,win11提示成功但实际无效

感谢,有支持win11版本的吗?

win11连这个都不能用了?那我就真不知道其他办法了……庆幸我还停留在10
作者: wjgyz740526    时间: 2024-7-29 17:52
china.gaofeng 发表于 2024-7-29 17:47
win11连这个都不能用了?那我就真不知道其他办法了……庆幸我还停留在10

嗯,无效了
作者: towlzj800801    时间: 2024-7-29 17:52
非常感谢楼主的无私分享
作者: towlzj800801    时间: 2024-7-29 17:53
非常感谢楼主的无私分享
作者: wang1126    时间: 2024-7-29 19:15
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

学习学习
作者: wn168cn@163.com    时间: 2024-7-29 20:07
感谢分享
作者: 1-k    时间: 2024-7-29 21:17
学习了
作者: guihuaju    时间: 2024-7-30 15:18
学习学习




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3