You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Polyglot Notebook中用PowerShell获取执行文件目录?

在Polyglot Notebook(PowerShell环境)中获取笔记本文件所在目录

原生PowerShell里的$PSScriptRoot或$MyInvocation.MyCommand.Path在Polyglot Notebook中无法直接使用,因为Notebook的执行模型与普通脚本不同。

符合Notebook规范的写法是利用Polyglot Notebook(原.NET Interactive Notebook)提供的内置环境变量$env:DOTNET_INTERACTIVE_NOTEBOOK_PATH,它会返回当前笔记本文件的完整路径,再通过Split-Path提取所在目录:

# 获取当前笔记本文件的完整路径
$notebookFullPath = $env:DOTNET_INTERACTIVE_NOTEBOOK_PATH
# 提取笔记本所在目录
$notebookDirectory = Split-Path -Path $notebookFullPath -Parent

这个方法比Get-Location更可靠:Get-Location返回的是当前工作目录,可能因手动切换路径而与笔记本实际存储目录不一致;而$env:DOTNET_INTERACTIVE_NOTEBOOK_PATH直接绑定笔记本文件本身,只要笔记本已保存,就能准确获取其所在目录。

如果是未保存的临时笔记本,该环境变量会为空,此时可以 fallback 到Get-Location作为替代方案。

内容的提问来源于stack exchange,提问作者Alex KeySmith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:37:00