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

[问题求助] 如何使用powershell获取某个文件右键属性中的详细信息的某些项的值

本帖最后由 5i365 于 2021-12-20 15:30 编辑

如下图所示, 我想获取某个mp3 右键属性中的详细信息里的某些项目的值
例如:
标题     的值:
参与创作的艺术家   的值

另外还想知道, 如何写判断   标题中, 只包含 伴奏 二字, 但不包含 DJ 字母, 同时  参与创作的艺术家   的值为海来阿木时   条件才为真

用下面的批处理, 也无法输出信息! 求路过的高手指点, 感谢

wmic datafile where name='C:\Users\Administrator\Desktop\新建文件夹\烟雨人间.mp3' > out.txt

用下面的代码, 能取到信息了, 但是是一列排列的, 怎样取到相应的值呢?
  1. $comShell = New-Object -ComObject Shell.Application
  2. $dir = $comShell.NameSpace("C:\Users\Administrator\Desktop\新建文件夹")
  3. $file = $dir.items() | select -First 1
  4. -1 .. 255 | foreach {
  5. $dir.GetDetailsOf($file, $_) |
  6. where {
  7. -not [string]::IsNullOrWhiteSpace($_)
  8. }
  9. }
复制代码

TOP

回复 3# for_flr


    感谢帮忙, 能显示信息了, 想了下, 还是不知道怎样取到值

标题     的值:
参与创作的艺术家   的值

判断   标题中, 只包含 伴奏 二字, 但不包含 DJ 字母, 同时  参与创作的艺术家   的值为海来阿木时   条件才为真

TOP

本帖最后由 5i365 于 2021-12-20 16:38 编辑

回复 5# for_flr


    我用下面的代码, 没有输出值和$true或$false,
另外, 13和21的值, 如何确定?
  1. $f = "C:\Users\Administrator\Desktop\MP3"
  2. $obj = new-object -comobject shell.application
  3. $objfolder = $obj.namespace($f)
  4. dir $f -filter *.mp3 | ?{
  5. $objfile = $objfolder.parsename($_.name)
  6. $artist = $objfolder.getdetailsof($objfile, 13)
  7. $artist
  8. $title = $objfolder.getdetailsof($objfile, 21)
  9. $title
  10. $title -match "伴奏" -and $title -notmatch "dj" -and $artist -match "海来阿木"
  11. }
复制代码
执行信息如下:


    Directory: C:\Users\Administrator\Desktop\MP3


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2021-12-19     21:27        8669103 海来阿木 - 烟雨人间.mp3

TOP

回复 7# for_flr


    感谢大侠详细解释:
下面这个能有信息显示了, 但是如果我加个括号后分别显示mp3的名字和完整路径, 不无法显示, 不知道为什么

($title -match "伴奏" -and $title -notmatch "dj" -and $artist -match "海来阿木").name
($title -match "伴奏" -and $title -notmatch "dj" -and $artist -match "海来阿木").fullname

TOP

返回列表