split-path 是 powershell 中安全、可靠提取文件父目录的命令,支持绝对/相对路径、变量、通配符解析(需 -resolve)及嵌套调用获取祖父目录。
在 powershell 中,split-path 是获取文件上级目录最直接、最可靠的方式之一。它不依赖当前工作路径,也不执行实际切换,只做纯路径解析,返回字符串结果,安全且可脚本化。
直接提取文件所在父目录(最常用)
只需用 -Parent 参数即可:
-
Split-Path -Path "C:UsersAliceDocs eport.pdf"→ 返回C:UsersAliceDocs -
Split-Path -Path ".dataconfig.json"→ 返回.\data(相对路径保持原样) - 若省略参数,默认行为就是
-Parent,所以Split-Path "D: emplog.txt"等效于加-Parent
配合 cd 快速进入上级目录
把提取结果直接传给 cd(即 Set-Location)就能跳转:
cd (Split-Path -Path "C:ProjectsAppuildmain.exe")- 支持变量:
$file = "E:Backuprchive.zip"cd (Split-Path $file)
处理带通配符或需解析的路径
加 -Resolve 可让 Split-Path 先展开通配符再取父目录(注意:仅对真实存在的路径有效):
-
Split-Path -Path ".logs*.log" -Resolve -Parent→ 若当前有logserror.log和logsinfo.log,则返回两次.\logs - 若路径不存在或通配符无匹配,
-Resolve会报错;如需容错,建议先用Test-Path判断
区分“上级目录”和“上上级目录”
Split-Path 本身只取一级父目录。如需上上级(即祖父目录),可嵌套调用:
-
Split-Path -Path (Split-Path -Path "C:ABCile.txt" -Parent) -Parent→ 返回C:AB - 更清晰写法:
$parent = Split-Path "C:ABCile.txt"; Split-Path $parent










