无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1174|回复: 14
打印 上一主题 下一主题

[求助] 关于用cmd或者powershell实现pin到开始屏幕

[复制链接]
跳转到指定楼层
1#
发表于 2024-7-29 15:19:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想要用命令行实现批量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的给点帮助?
2#
发表于 2024-7-29 16:06:35 | 只看该作者
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小工具:
www。technosys。net/products/utils/pintotaskbar
(自行替换。)

点评

学习学习  详情 回复 发表于 2024-7-29 19:15
win10测试成功,win11提示成功但实际无效 感谢,有支持win11版本的吗?  详情 回复 发表于 2024-7-29 17:29
好人  发表于 2024-7-29 17:21
感谢回复 回头测试下  详情 回复 发表于 2024-7-29 16:20

评分

参与人数 2无忧币 +7 收起 理由
9zhmke + 5 赞一个!
yyz2191958 + 2 赞一个!

查看全部评分

回复

使用道具 举报

3#
 楼主| 发表于 2024-7-29 16:20:16 来自手机 | 只看该作者
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

感谢回复

回头测试下
回复

使用道具 举报

4#
发表于 2024-7-29 17:10:30 | 只看该作者
学习学习
回复

使用道具 举报

5#
 楼主| 发表于 2024-7-29 17:29:22 | 只看该作者
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

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

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

使用道具 举报

6#
发表于 2024-7-29 17:47:21 | 只看该作者
wjgyz740526 发表于 2024-7-29 17:29
win10测试成功,win11提示成功但实际无效

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

win11连这个都不能用了?那我就真不知道其他办法了……庆幸我还停留在10

点评

嗯,无效了  详情 回复 发表于 2024-7-29 17:52
回复

使用道具 举报

7#
 楼主| 发表于 2024-7-29 17:52:19 来自手机 | 只看该作者
china.gaofeng 发表于 2024-7-29 17:47
win11连这个都不能用了?那我就真不知道其他办法了……庆幸我还停留在10

嗯,无效了
回复

使用道具 举报

8#
发表于 2024-7-29 17:52:38 | 只看该作者
非常感谢楼主的无私分享
回复

使用道具 举报

9#
发表于 2024-7-29 17:53:00 | 只看该作者
非常感谢楼主的无私分享
回复

使用道具 举报

10#
发表于 2024-7-29 19:15:46 | 只看该作者
china.gaofeng 发表于 2024-7-29 16:06
不知你的windows是什么版本的,21H2之后的版本不能用powershell往任务栏或开始pin项目了,要用一个第三方小 ...

学习学习
回复

使用道具 举报

11#
发表于 2024-7-29 20:07:13 | 只看该作者
感谢分享
回复

使用道具 举报

12#
发表于 2024-7-29 21:17:51 | 只看该作者
学习了
回复

使用道具 举报

13#
发表于 2024-7-30 15:18:45 | 只看该作者
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-22 21:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表