提取文件名的一部分

时间:2014-11-10 20:19:43

标签: powershell-v3.0

我有一个名为CompanyName-SomeAlphaNumString.log的文件目录 我想得到一个目录清单:
SomeAlhpaNumString LastWriteTime

我怀疑在Select-Object过滤器中需要一个自定义属性:
gci *.log | select @{n="Name"; e={$_ <What goes here?> }}, LastWriteTime

我是否需要将正则表达式合并到自定义属性中,还是有其他方法可以执行此操作? 谢谢你的任何想法......

1 个答案:

答案 0 :(得分:0)

你可以尝试

gci *.txt | select @{n="Name"; e={if ($_.Name -match "CompanyName-(\w+)") { 
  $matches[1] }}}, LastWriteTime

,其中

$_.Name -match "CompanyName-(\w+)")  

选择CompanyName后跟hypen以及将单词放入反向引用的单词

$matches[1] 

选择放入反向引用1的匹配


或者,您可以通过将-match的结果传递给Out-Null

来删除if子句
gci *.txt | select @{n="Name"; e={$_.Name -match "CompanyName-(\w+)" | Out-Null; { 
  $matches[1] }}, LastWriteTime