Loading...

Watch: How to Check If a Directory Exists on Windows-like Systems with Ansible

Discover how to check if a directory exists on Windows-like systems using Ansible ansible.windows.win_stat module. Follow along with a practical Playbook example to validate directory presence and integrate this capability into your automation workflows.

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

![win_stat directory doesn't exist](/articles/ansible_module_win_stat_dir1.jpg)

``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] **

Read the full tutorial: How to Check If a Directory Exists on Windows-like Systems with Ansible