1 | initial version |
You can utilize $_ within an Ansible PowerShell scriptblock by enclosing the scriptblock in single quotes and embedding the variable using double quotes. For example:
- name: Example task
hosts: localhost
gather_facts: no
tasks:
- name: Run scriptblock with $_
win_shell: |
Invoke-Command -ScriptBlock {'Get-ChildItem | ForEach-Object {Write-Output $_.Name}}'}
register: output
- name: Print output
debug:
var: output.stdout_lines
In this example, the PowerShell scriptblock contains the command "Get-ChildItem", which retrieves a list of files and directories, and then piped into "ForEach-Object", which outputs the name of each item using the "$_.Name" syntax. The scriptblock is then executed using the "Invoke-Command" cmdlet, and the output is registered to the "output" variable. Finally, the output is printed using the "debug" module.