Не обязательно лучше, но так как хорошо иметь варианты, вот как это сделать, используя заявления Jinja :
- debug:
msg: "{% for address in network.addresses.private_man %}\
{% if address.type == 'fixed' %}\
{{ address.addr }}\
{% endif %}\
{% endfor %}"
Или, если вы предпочитаете ставить все на одном line:
- debug:
msg: "{% for address in network.addresses.private_man if address.type == 'fixed' %}{{ address.addr }}{% endfor %}"
Возврат:
ok: [localhost] => {
"msg": "172.16.1.100"
}
Я думаю, что Вы хотите DeleteFile и RemoveDirectory
Существует два способа приблизиться к этому. Каждый через эти , Файловые службы (использующие команды такой как DeleteFile и RemoveDirectory) и другой через Windows Shell (использование SHFileOperation). Последнему рекомендуют, если Вы хотите удалить непустые каталоги или если Вы хотите обратную связь стиля проводника (диалоговые окна прогресса с летающими файлами, например). Самый быстрый способ сделать это состоит в том, чтобы создать SHFILEOPSTRUCT, инициализировать его и вызов SHFileOperation, таким образом:
void silently_remove_directory(LPCTSTR dir) // Fully qualified name of the directory being deleted, without trailing backslash
{
SHFILEOPSTRUCT file_op = {
NULL,
FO_DELETE,
dir,
"",
FOF_NOCONFIRMATION |
FOF_NOERRORUI |
FOF_SILENT,
false,
0,
"" };
SHFileOperation(&file_op);
}
Это тихо удаляет весь каталог. Можно добавить обратную связь и подсказки путем варьирования, инициализация SHFILEOPSTRUCT - действительно читает на ней.
Я верю DeleteFile
, не отправляет файл в Корзину. Кроме того, RemoveDirectory
удаляет только пустых директоров , SHFileOperation дал бы Вам большую часть контроля тем, что и как удалить и покажет стандартные диалоговые окна Windows UI (например, "Подготовка удалить и т.д.) в случае необходимости.