问题是当你打电话的时候
来自PowerShell
(与来自不同
cmd.exe
命令名
dotenv
解析为
PowerShell脚本
即
dotenv.ps1
当PowerShell调用PowerShell时-
命令-包括
.ps1
文件-它自己的参数binder解释(第一个)
--
参数和
删除它
从未见过
.
(语义
--
类似于Unix实用程序:
--
位置的
例如
-foo
.)
因此,不幸的是,您需要指定
为了通过一个
--
实例到
脚本本身:
# The first '--' is removed by PowerShell's parameter binder.
# The second one is then received as an actual, positional argument by
# dotenv.ps1
dotenv -e .\.env -- -- pnpm dev --filter api
或者,假设
dotenv.cmd
,即a
CLI的版本也存在(也位于中列出的目录中)
$env:PATH
),您可以通过显式调用它来绕过此问题,而不是
.ps1
;
外部程序
命令提示符
),PowerShell有
不
--
:
# Calling the batch-file form of the command doesn't require
# passing '--' twice.
dotenv.cmd -e .\.env -- pnpm dev --filter api