0

我正在使用win_fileansible 模块来删除目录。但是,当它运行剧本时,我看到以下错误:

"msg": "Failed to delete C:\\product\\eclipse-cpp-2019-06-R-win32-x86_64\\eclipse\\plugins\\com.amazonaws.eclipse.elasticbeanstalk_1.0.0.v201807201743\\com\\amazonaws\\eclipse\\elasticbeanstalk\\server\\ui\\configEditor: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters."

Ansible playbook (uninstall.yml) 正在通过 UCD (UrbanCode Deploy) 运行。这是我的ansible代码:

- name: Remove install_home folder
win_file:
   path: "{{install_home}}"
   state: absent

任何人都对上述错误是由操作系统、Ansible、UCD 还是限制引起的有任何想法。我很感激任何关于我如何克服上述问题的想法/指导。

非常感谢

4

1 回答 1

1

它的限制来自于OS,根据这个

在 Windows 10 版本 1607 之前的 Windows 版本中,路径的最大长度为MAX_PATH,定义为 260 个字符。在更高版本的 Windows 中,需要更改注册表项或使用组策略工具来删除限制。有关完整详细信息,请参阅最大路径长度限制

为防止此问题:

要指定扩展长度的路径,请使用"\\?\"前缀。例如,字符的"\\?\D:\very long path"最大路径32,767是近似的,因为“\?” 系统在运行时可以将前缀扩展为更长的字符串,并且此扩展适用于总长度。

例如:

"\\?\C:\\product\\eclipse-cpp-2019-06-R-win32-x86_64\\eclipse\\plugins\\com.amazonaws.eclipse.elasticbeanstalk_1.0.0.v201807201743\\com\\amazonaws\\eclipse\\elasticbeanstalk\\server\\ui\\configEditor"
于 2021-07-23T04:56:01.433 回答