7

假设您有变量$source = "C:\temp\one\two\three"并且您想$destination以编程方式设置等于$destination = "C:\temp\one\two",您会怎么做?

我最好的想法是修剪它,但有更好的方法吗?

也许像

$source = "C:\temp\one\two\three"
$dest = "..$source"
4

2 回答 2

32

正如 Lee 所建议的那样,从 DirectoryInfo 对象中获取父级肯定会起作用。或者,如果您喜欢使用更多 PowerShellesque 命令而不是直接调用 .NET Framework,则可以使用 PowerShell 的内置 Split-Path cmdlet,如下所示:

$source      = "C:\temp\one\two\three"

$destination = Split-Path -Path $source -Parent

# $destination will be a string with the value "C:\temp\one\two"
于 2013-08-15T21:27:44.053 回答
2
$source = "C:\temp\one\two\three"
$dest = (new-object system.io.directoryinfo $source).parent.fullname

编辑:你可以得到一个DirectoryInfo目录,get-item这样你就可以这样做:

$dest = (get-item $source).parent.fullname
于 2013-08-15T20:59:44.227 回答