将空字符串作为变量值从ansible playbook传递到powershell?

将空字符串作为变量值从ansible playbook传递到powershell?,powershell,ansible,ps1,Powershell,Ansible,Ps1,我想将空字符串作为变量值从ansible playbook传递到PowerShell文件 Ansible代码: vars: name: {{file_name}} tasks: - name: run ps1 win_shell: "script.ps1 -database_name {{ name }}" no_log: false Powershell code param( [Parameter(Mandatory = $true)][AllowEmpty

我想将空字符串作为变量值从ansible playbook传递到PowerShell文件

Ansible代码:

vars:
 name: {{file_name}}

tasks:
  - name: run ps1 
    win_shell: "script.ps1 -database_name {{ name }}"
    no_log: false

Powershell code 

param(

[Parameter(Mandatory = $true)][AllowEmptyString()][string]$database_name 

)

因此,如果
文件中没有名称\u name
那么我想向PowerShell文件发送一个空字符串!我该怎么做呢?

您可能需要在
{{name | default(“”| quote}}}
中将结果包装到shell quote变量中。如果没有这一点,jinja2不知道您希望将空字符串呈现为
,而不是空白;您也可以使用
{name | default(''''')}
来避开这一步,但这不太可能是您想要的,因为如果
name
“hello world”
那么
{name | default(“”}
将在您的命令中呈现为
-database\u name hello world
,这几乎肯定会失败

您可能需要在
{{name | default(“”| quote}}}
中将结果包装到shell quote变量中。如果没有这一点,jinja2不知道您希望将空字符串呈现为
,而不是空白;您也可以使用
{name | default(''''')}
来避开这一步,但这不太可能是您想要的,因为如果
name
“hello world”
那么
{name | default(“”}
将在您的命令中呈现为
-database\u name hello world
,这几乎肯定会失败

请修复格式设置。至于你的问题,到目前为止,你尝试了哪些不适合你的步骤?嗨@mdaniel,谢谢。如果没有声明或未定义文件名,我想将空字符串作为变量(如name=“”)传递给PowerShell文件。我试过win_shell:“script.ps1-database_name{{{name}default(“”)}。但是它不起作用。请修复格式。至于你的问题,到目前为止你试过哪些步骤对你不起作用?Hi@mdaniel谢谢。我想传递一个空字符串作为变量(比如name=”“)如果没有声明文件名或未定义文件名,则返回PowerShell文件。但它不起作用