首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将包含空格的字符串值传递给另一个powershell文件

将包含空格的字符串值传递给另一个powershell文件
EN

Stack Overflow用户
提问于 2020-01-17 23:23:45
回答 1查看 85关注 0票数 1

我有一个powershell脚本,它调用另一个传递字符串参数的powershell文件。

代码语言:javascript
复制
param (
  [string]$strVal = "Hello World"
)

$params = @{
message = "$strVal"
}

$sb = [scriptblock]::create(".{$(get-content $ps1file -Raw)} $(&{$args} @params)")

不知何故,脚本传递消息变量时不带双引号,因此powershell文件只接收消息变量的第一部分(在空格之前),即“你好”。

如何传递带空格的strVal变量(即"Hello World")?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 23:53:27

双引号对通知PowerShell执行字符串扩展。如果您想逐字输出双引号,则需要对它们进行转义(防止扩展)或用单引号将它们括起来。但是,单引号对表示PowerShell从字面上处理内部的所有内容,这样您的变量就不会插值。在这种情况下,您需要字符串扩展、变量插值和文字双引号。

您可以执行以下操作:

代码语言:javascript
复制
# Double Double Quote Escape
@{message = """$strVal"""}
Name                           Value
----                           -----
message                        "Hello World"

# Backtick Escape
@{message = "`"$strVal`""}
Name                           Value
----                           -----
message                        "Hello World"

报价解析从左到右工作,这意味着最左边的报价类型优先。因此,由于外部的单引号对,'"$strVal"'将按字面意思打印所有内容。"'$strVal'"将打印单引号和$strVal的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59790254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档