How to check if a directory/folder exists on Windows-like systems with Ansible?
I'm going to show you a live Playbook and some simple Ansible code.
I'm Luca Berton and welcome to today's episode of Ansible Pilot
Ansible check directory exists on Windows-like systems
ansible.windows.win_stat
- Get information about Windows files
Let's talk about the Ansible module win_stat.
The full name is ansible.windows.win_stat, which means that is part of the collection of modules specialized to interact with Windows target host.
It's a module pretty stable and out for years.
It works in Windows and Windows Server operating systems.
It gets information about Windows files.
For Linux target use the [ansible.builtin.stat](/articles/check-if-a-directory-exists-ansible-module-stat) module instead.
Parameters & Return Values
Mandatory Parameters
- path string
Main Return Values
- stat complex - isdir
The only mandatory parameter is "path" which is the filesystem full path of the object to check.
The module returns a complex object, the property that is interesting for us is "isdir". This attribute is "true" if the object is a directory
Links
- [ansible.windows.win_stat](https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_stat_module.html)
## Playbook
How to check if the "example" directory/folder exists on the Desktop of the user on Windows-like systems with Ansible Playbook.
code
``yaml
---
- name: check if is a directory
hosts: all
vars:
directory: 'C:\Users\vagrant\Desktop\example'
tasks:
- name: Check the directory
ansible.windows.win_stat:
path: "{{ directory }}"
register: dir_data
- name: Directory found
ansible.builtin.debug:
msg: "Directory {{ directory }} present"
when: dir_data.stat.isdir is defined and dir_data.stat.isdir
`
directory doesn't exist execution

`bash
ansible-pilot $ ansible-playbook -i virtualmachines/win/inventory check\ directory\ exists/directory_exists_windows.yml
PLAY [check if is a directory] **
TASK [Gathering Facts]
ok: [WindowsServer]
TASK [Check the directory] **
ok: [WindowsServer]
TASK [Directory found]
skipping: [WindowsServer]
PLAY RECAP **
WindowsServer : ok=2 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
ansible-pilot $
`
directory exist execution

``bash
ansible-pilot $ ansible-playbook -i virtualmachines/win/i