Хотя в документации win_command:
об этом ничего не говорится, на основании чтения win_shell:
документации видно, что PowerShell.exe используется по умолчанию, а не CMD.exe
В документах win_shell:
указано, что вы можете явно выбрать использование CMD.exe вместо powershell, указав executable: cmd.exe
в args:
для задачи:
- name: clear old backups
win_shell:
FOR /f "skip=7 delims=" %%a IN (' DIR D:\backups\auto\ /o-d /b') DO RD /S /Q "D:\backups\auto\%%a"
args:
executable: cmd.exe
Для По той же причине, по которой win_command:
не разрешает операторы оболочки, необходимо использовать win_shell:
, чтобы иметь доступ к встроенным функциям оболочки, таким как FOR
и IF
выражения