salt file.directoy_exists 循环检查

salt file.directoy_exists check in a loop

正在尝试遍历文件夹列表以检查目录是否存在,然后清理该目录(删除所有文件)。

{% set FOLDERS_TO_CLEAN = ['C:\Test\Folder1'] %}
{% for FOLDER in FOLDERS_TO_CLEAN %}
{% if salt['file.directory_exists']({{ FOLDER }}) %}
{{ FOLDER }}_delete:
file.directory:
  - name: {{ FOLDER }}
  - clean: True
  - failhard: True
{% endif %}
{% endfor %}

有问题的是第三行。变量 FOLDER 以语法错误结束,但是当我将其更改为我的测试字符串时,它起作用了。知道我可以更改什么以使其有效吗?

您需要在 if 语句中用单引号将 {{ FOLDER }} 括起来。 像这样:

{% set FOLDERS_TO_CLEAN = ['C:\Test\Folder1'] %}
{% for FOLDER in FOLDERS_TO_CLEAN %}
{% if salt['file.directory_exists']('{{ FOLDER }}') %}
{{ FOLDER }}_delete:
file.directory:
  - name: {{ FOLDER }}
  - clean: True
  - failhard: True
{% endif %}
{% endfor %}