ansible - win_find 失败!=> {"msg": "'dict object' 没有属性 'files'"}
问题描述
我正在尝试使用“路径”变量运行 win_find 以查找临时文件(例如 c:\users\public\appdata\local\temp),但是当我将它传递给调试时,我收到错误消息
"FAILED! => {"msg": "'dict object' has no attribute 'files'"}"
我曾尝试交换“register”和“with_items”行,但这似乎根本没有区别。
- hosts: windows-02
vars:
dir: \AppData\Local\Temp\
tasks:
- name: find user directories
win_find:
paths: c:\users
recurce: yes
file_type: directory
get_checksum: no
register: user_dir
- name: debug 1
debug:
msg: "{{ item.path + dir }}"
loop: "{{ user_dir.files }}"
- name: find temp files
win_find:
paths: "{{ item.path + dir }}"
recurce: yes
hidden: yes
get_checksum: no
register: files_to_delete
with_items: "{{ user_dir.files }}"
- name: debug
debug:
msg: "{{ item }}"
loop: "{{ files_to_delete.files }}"
- name: remove
win_file:
path: "{{ item.path }}"
state: absent
with_items: "{{ files_to_delete.files }}"
我希望得到一个要删除的文件列表,这些文件将传递给“win_files”模块。相反,我收到了错误消息
"FAILED! => {"msg": "'dict object' has no attribute 'files'"}"
解决方案
win_find 模块中有一个错字,它是递归的:是 请找到下面对我有用的代码
---
- name: Find files
win_find:
paths: "{{paths}}"
age: "{{duration}}"
register: log_files
- name: Delete the files
win_file:
path: "{{item.path}}"
state: absent
with_items: "{{log_files.files}}"
而且 files_to_delete 不会有 files_to_delete.files 因为它在循环中。它将有 files_to_delete.results
推荐阅读
- python - Telegram Bot - 在群聊中的所有用户中保留 Pickle 上下文
- python - 使用 python 的 onenote API:向页面添加更多文本
- java - Android Studio Java 根据下一个 Activity 中的条件从 Backstack 弹出一个 Activity
- c++ - 我想知道为什么我的 calc() 函数没有出现在输出中
- node.js - 如果匹配查询参数为空,则返回聚合的所有结果
- json - 如何使用 CloudFormation 覆盖容器环境变量运行 AWS ECS 任务
- amazon-web-services - AWS EKS - 创建负载均衡器控制器失败
- ocaml - 有更好的解决方案吗?
- android - 在加载数据之前显示其子级缩略图的 Android 组件
- ios - 在 SceneView 中加载 .ply