[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 使用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. }
复制代码

找到一个C#的文章, 但是不太懂怎么用C#的代码
https://www.cnblogs.com/DoNetCShap/p/4221854.html

TOP

问题差不多解决了, 但是返回的是 真或假
  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. }
复制代码

TOP

筛选出来了, 但是有多行空行:
  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. }
复制代码

TOP

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

TOP

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

TOP

回复 6# for_flr


    感谢帮忙, 结果显示的是快捷方式的名字, 我需要回显快捷方式的目标

TOP

回复 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筛选一下不行吗

TOP

回复 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}}
复制代码

TOP

返回列表