我正在做很多System.IO.Path操作,我很好奇是否可以在变量中存储对该静态类的引用,因此它更短?
而不是编写这些冗长的namespace.class路径:
[System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($targetFile), [System.IO.Path]::GetFileName("newfile_$targetFile"))
写这个会很棒:
$path = [System.IO.Path]
$path.Combine($path.GetDirectoryName($targetFile), $path.GetFileName("newfile_$targetFile"))
有没有办法在powershell中执行此操作?
答案 0 :(得分:5)
是。您建议的代码很接近,您只需要使用::
静态调用语法:
$path = [System.IO.Path]
$path::Combine( ... )
答案 1 :(得分:1)
PowerShell具有用于某些路径操作的内置cmdlet:
PS C:\Windows\system32> get-command -Noun Path
CommandType Name ModuleName
----------- ---- ----------
Cmdlet Convert-Path Microsoft.Powershell.Management
Cmdlet Join-Path Microsoft.Powershell.Management
Cmdlet Resolve-Path Microsoft.Powershell.Management
Cmdlet Split-Path Microsoft.Powershell.Management
Cmdlet Test-Path Microsoft.Powershell.Management
使用本机PowerShell cmdlet实现的示例:
Join-Path (Split-Path $targetFile) (Split-Path $targetFile -Leaf)