gpt4 book ai didi

windows - 如何将带点的批处理参数传递到 powershell 脚本中?

转载 作者:可可西里 更新时间:2023-11-01 13:56:28 25 4
gpt4 key购买 nike

我有一个批处理脚本,它将由不受我控制的外部进程运行。外部进程可以向批处理脚本提供可变数量的参数。然后我想将这些变量传递给 powershell 脚本。问题是,其中一些变量看起来像:

-Dfoo.bar=baz

出于某种原因,Powershell 将其分解为两个参数。在命令行上,我可以在 arg 周围添加引号并结束它。但是我怎样才能让 batch 以这种方式传递呢?这是我的脚本:

@echo off
SET CMD=C:\Scripts\foo.ps1

PowerShell.Exe -Command "%CMD%" %*

我注意到这个问题与 this one 非常相似.他在这里转义了 $ 字符。我尝试为点和/或破折号字符做类似的事情,但没有运气。有人有什么想法吗?

最佳答案

如果您从 CMD 调用您的脚本,它按原样工作得很好:

C:\>.\foo.bat -Dfoo.bar=baz
args are -Dfoo.bar=baz

要解决从 PowerShell 运行批处理脚本时出现的问题,请使用 stop parsing operator --% 例如:

C:\ PS> .\foo.bat --% -Dfoo.bar=baz
args are -Dfoo.bar=baz

关于windows - 如何将带点的批处理参数传递到 powershell 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26614969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com