我看到了这个解决方案: Get folder name from full file path
可接受的答案是:
string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;
但这在C#中。我目前正在尝试.net挂接该方法并使其在Powershell中运行,但是我不确定如何正确使用该对象。
这是我目前拥有的:
$AppPath = "$null"
$PathArray = @()
$ParentFolderNames = @()
$DirObject = New-Object -TypeName System.IO
Get-ChildItem -Path $ServerPath | Select-Object FullName | ForEach-Object {
## $_.GetType()
$String = ("$_.").ToString()
$PathArray += $String.Split("=")[1]
}
foreach ($object in $PathArray){
## $ParentFolderNames += $object.Split("$\*")[1]
$ParentFolderNames += $DirObject.DirectoryInfo("$Object").Name
}
$ParentFolderNames
我得到的错误是“您不能在空值表达式上调用方法”。但是,$ object不为null。
当我在foreach循环中调用它时,会得到所需的输出。但是我无法通过该.net钩子来获取最后一个文件夹名称。
编辑:所以我意识到我正在尝试发明轮子。我应该刚完成“选择对象名称”而不是“全名”。然后使用Trim删除我不需要的任何字符。
但是我仍然想知道如何正确使用该.Net钩子