Board logo

标题: [问题求助] 使用powershell获取某快捷方式文件的目标信息 [打印本页]

作者: 5i365    时间: 2021-12-1 08:33     标题: 使用powershell获取某快捷方式文件的目标信息

本帖最后由 5i365 于 2021-12-1 09:04 编辑

我的桌面上有几个快捷方式文件, 其中有一个是D盘下某个文件夹, 通过右键发送到桌面的快捷方式生成的快捷方式,在它上面  点右键---属性---快捷方式---目标  里面是快捷方式所在的文件夹路径, 路径里面包含 video  我想找到它,并回显该路径,  用下面的代码不生效, 请高手指点, 非常感谢
  1. dir -path "C:\Users\Administrator\Desktop\*.lnk" -File  |
  2. ForEach-Object {
  3. $_.Target -contains "video"
  4. }
复制代码

作者: 5i365    时间: 2021-12-1 09:19

找到一个C#的文章, 但是不太懂怎么用C#的代码
https://www.cnblogs.com/DoNetCShap/p/4221854.html
作者: 5i365    时间: 2021-12-1 10:55

问题差不多解决了, 但是返回的是 真或假
  1. dir -path "C:\Users\Administrator\Desktop\*.lnk" -File  |
  2. ForEach-Object {
  3. #$_.FullName
  4. ((New-Object -ComObject WScript.shell).CreateShortcut($_.FullName)).TargetPath -contains "video"
  5. }
复制代码

作者: 5i365    时间: 2021-12-1 11:38

筛选出来了, 但是有多行空行:
  1. dir -path "C:\Users\Administrator\Desktop\*.lnk" -File |
  2. ForEach-Object {
  3. ((New-Object -ComObject WScript.shell).CreateShortcut($_.FullName)).TargetPath | Select-String -Pattern 'video'
  4. }
复制代码

作者: for_flr    时间: 2021-12-1 12:24

  1. $shell=new-object -comobject wscript.shell
  2. $word="video"
  3. get-childitem *.lnk|%{if($shell.createshortcut($_.fullname).targetpath -match $word){$_.name}}
复制代码

作者: for_flr    时间: 2021-12-1 12:33

  1. dir *.lnk|?{(new-object -comobject wscript.shell).createshortcut($_.fullname).targetpath -match "video"}
复制代码

作者: 5i365    时间: 2021-12-1 13:38

回复 6# for_flr


    感谢帮忙, 结果显示的是快捷方式的名字, 我需要回显快捷方式的目标
作者: for_flr    时间: 2021-12-1 14:43

回复 7# 5i365
  1. $shell=new-object -comobject wscript.shell
  2. $word="video"
  3. get-childitem *.lnk|%{
  4. $dp=$shell.createshortcut($_.fullname).targetpath
  5. if($dp -match $word){$_.name+"指向目标:"+$dp}}
复制代码
#中途用个变量将targetpath存起来,再用if筛选一下不行吗
作者: 5i365    时间: 2021-12-1 17:05

回复 8# for_flr


这样就行了, 能取到值, 但最后一行, 感觉是不是可以精简些
  1. $shell=new-object -comobject wscript.shell
  2. $word="video"
  3. get-childitem *.lnk|foreach{
  4. $dp=$shell.createshortcut($_.fullname).targetpath
  5. if($dp -match $word){$dp}}
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2