當我嘗試使用 win_file 洗掉一些檔案夾時遇到了一個愚蠢的問題
首先我將遙控器上的一些檔案夾從一個目錄復制到另一個目錄
- name: copy folders first
win_copy:
src: '{{ item }}'
dest: 'C:\folders\to\copy'
remote_src: yes
loop: '{{ paths_to_copy }}'
register: copied_folders
然后我只過濾那些檔案夾的“路徑”,以便稍后在執行一些其他任務后洗掉。
- name: filter paths to be deleted after some tasks
set_fact:
paths_to_delete: "{{ copied_folders | json_query('results[*].dest') }}"
我得到這個結果:
ok: [<computer>] => {
"ansible_facts": {
"paths_to_delete": [
"C:\\folders\\to\\copy\\1",
"C:\\folders\\to\\copy\\2",
"C:\\folders\\to\\copy\\3",
"C:\\folders\\to\\copy\\4"
]
},
"changed": false
}
一切似乎都很好,但是當我遍歷“paths_to_delete”時,劇本失敗了,因為它以所有這 4 條路徑作為一個路徑回傳。
- name: clean up temporary copied directories
win_file:
path: '{{ item }}'
state: absent
loop:
- '{{ paths_to_delete }}'
"msg": "Get-AnsibleParam: Parameter 'path' has an invalid path '['C:\\\\folders\\\\to\\\\copy\\\\1','C:\\\\folders\\\\to\\\\copy\\\\2','C:\\\\folders\\\\to\\\\copy\\\\3','C:\\\\folders\\\\to\\\\copy\\\\4'] specified."
為什么它不回圈這個串列并一一洗掉它們?我在第一個復制任務中使用相同的機制,回圈遍歷一個串列,它確實一個一個地復制檔案夾,沒有任何問題。
任何幫助將非常感激。
uj5u.com熱心網友回復:
您的回圈語法不正確。
loop:
- '{{ paths_to_delete }}'
這將串列嵌套在具有單個元素的另一個串列中。您要做的是遍歷原始串列:
loop: '{{ paths_to_delete }}'
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527300.html
標籤:视窗可靠的
下一篇:如何使用windbg設定全域斷點
