我有一个充满文件对的目录.每对文件都有相同的名称,扩展名为mp3和cdg(卡拉OK文件!).我想使用powershell来获取没有扩展名的所有不同文件名的列表
我已经达到了:
dir -recurse -filter "*.mp3" | select-object Name | sort
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何将每个名称传递给[System.IO.Path] :: GetFileNameWithoutExtension
我该怎么做?
您正在寻找的是for-each(%)过滤器(不确定它是过滤器还是cmdlet,但它具有相同的使用语法).
请尝试以下方法
dir -recurse -filter "*.mp3" |
%{ $_.Name } |
%{ [IO::Path]::GetFileNameWithoutExtension($_) } |
sort
Run Code Online (Sandbox Code Playgroud)
编辑更新
我把答案从" select-object Name"改为" %{ $_.Name}".前者基本上从管道值中取出Name属性,并使用指定名称的单个属性创建一个新对象,其中包含原始对象上的值.后者将处理管道中的每个值,并传递执行$_.Name管道的结果.
| 归档时间: |
|
| 查看次数: |
3436 次 |
| 最近记录: |