繁体   English   中英

Windows上p的文件路径中的空格

[英]Spaces in file paths for puppet on Windows

我需要在Windows上使用Puppet安装某些产品。 我使用exec资源

exec { 'install':
            command => 'C:\\windows\system32\cmd.exe /c "c:\\Program Files\\zabbix_agentd_64.exe --config c:\\Program Files\\zabbix_agentd.conf --install"',
            }

语法还可以,但是我明白了

'c:/ Program'不被识别为内部或外部命令

我也尝试过command => 'C:\\\\windows\\system32\\cmd.exe /c "c:\\Program Files\\zabbix_agentd_64.exe --config c:\\Program Files\\zabbix_agentd.conf --install"'command => 'C:\\\\windows\\system32\\cmd.exe /c "c:\\\\Program/Files\\\\zabbix_agentd_64.exe --config c:\\\\Program/Files\\\\zabbix_agentd.conf --install"'但是说语法错误(事实上是这样)。 有任何想法吗?

Puppet(实际上可能是下面的Ruby)正在将命令字符串拆分为单词,而无需考虑内部引号。 我认为您无法采取任何措施来防止这种情况的发生,但是Puppet的错误跟踪器中存在一个相关的问题 您可以考虑对此问题发表评论/投票。 应该可以将以单词拆分形式指定给Exec的命令指定为数组,这将为您的问题提供解决方案。

我看到使它现在可以工作的两种可能的选择:

  • 使用目录的8.3名称(请参阅如何获取DOS路径而不是Windows路径 )。 这可能很棘手,因为我认为8.3路径不是仅由文件名唯一地确定的-它可能会受到同级文件和目录名称的影响。

  • 为Exec指定一个PATH,通过该PATH可以找到所需的可执行文件,并以其简单名称运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM