我很困惑,当我有一个很长的目录结构,因为我用内赢得我的电脑上的Dropbox的驱动器如何正确使用拆分路径为PowerShell的第5版10.与长目录名在PowerShell中
我的问题域是递归旅行的我做了更改软件的几个目录,有多种版本,有时每个目录都有两个或三个子目录深在几个地方。
的目录结构我已经和它开始在C:\用户\ XXXX \ Dropbox的\做\ SoftwareName \发布
“释放”字段,以显示我想要的版本号要能总结一下我的报告.. \ Release目录下的版本号。位置是因此,使用-Leaf和文件名作为文件的最后一个(子)-directory。
我用(编辑代码:。所示为改变我学到我很高兴在输出由于引用集合花括号
cd C:\Users\XXXX\Dropbox\Doing\SoftwareName\Releases
Get-ChildItem -Path (Get-Location) -Filter *.cs -Recurse |
ForEach-Object {
$Release = $_.Directory.Split('\') -like "*Version*"
$Location = Split-Path ($_.DirectoryName) -Leaf
$File = $_.Name
ForEach-Object {
New-Object PSObject -Property @{
Release = $Release.ToString()
Location= $Location.ToString()
File = $File.ToString()
}
} | Format-Table -AutoSize Release, Location, File
}
输出(第一三条线,以简化)
Release
Location File
C:\Users\XXXX\Dropbox\Doing\SoftwareName\Releases\Version1\StoryWriter StoryWriter Chapter1.cs
C:\Users\XXXX\Dropbox\Doing\SoftwareName\Releases\Version2\StoryWriter\Outline\BeachScene BeachScene Chapter2.cs
C:\Users\XXXX\Dropbox\Doing\SoftwareName\Releases\Version3\StoryWriter\Outline\Conversations Conversations Chapter3.cs
结果我之后
Release Location File
------- -------- ----
Version1 StoryWriter Chapter1.cs
Version2 BeachScene Chapter2.cs
Version3 Conversations Chapter3.cs
非常感谢。
谢谢@ Esperento57和基兰您的反馈。我花了几天的时间休息一下,用新鲜的眼光看着它,同时考虑到正则表达式和分割问题,我制定了一个解决方案。 –