Chef infra 在执行资源中抛出错误

Chef infra 在执行资源中抛出错误,chef-infra,Chef Infra,我正在编写一个非常基本的方法,将数据从一个文件夹复制到另一个文件夹。我编写了以下代码: 执行“文件共享”do 命令“copy”X:\B2BPortal-0.0.1-SNAPSHOT.war“C:\apache-tomcat-6.0.32\apache-tomcat-6.0.32\webapps”;/Y 结束 当我转到我的节点并尝试执行这个命令时,它运行得非常好。但若我试着通过厨师来运行这个食谱,那个就是抛出错误。错误截图附在后面。请看一看并提出解决方案。![错误 命令“复制”X:\B2BPor

我正在编写一个非常基本的方法,将数据从一个文件夹复制到另一个文件夹。我编写了以下代码:

执行“文件共享”do

命令“copy”X:\B2BPortal-0.0.1-SNAPSHOT.war“C:\apache-tomcat-6.0.32\apache-tomcat-6.0.32\webapps”;/Y

结束

当我转到我的节点并尝试执行这个命令时,它运行得非常好。但若我试着通过厨师来运行这个食谱,那个就是抛出错误。错误截图附在后面。请看一看并提出解决方案。![错误

命令“复制”X:\B2BPortal-0.0.1-SNAPSHOT.wa。。。
^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:no.floating literal不再存在;将0置于点之前
…ommand“复制”X:\B2BPortal-0.0.1-SNAPSHOT.war“C:\apache到。。。
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:语法错误,意外的tINTEGER
…mmand“copy”X:\B2BPortal-0.0.1-SNAPSHOT.war“”C:\apache tom。。。
...                               ^
c:/chef/cache/cookbooks/file\u sharing/recipes/default.rb:11:语法错误,意外的tSTRING\u BEG,应为关键字\u end
…:\B2BPortal-0.0.1-SNAPSHOT.war“C:\apache-tomcat-6.0.32\apa。。。
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:语法错误,意外的tCONSTANT,应为关键字\u end
…2BPortal-0.0.1-SNAPSHOT.war“”C:\apache-tomcat-6.0.32\apache。。。
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:no.floating literal不再存在;将0置于点之前
…HOT.war“”C:\apache-tomcat-6.0.32\apache-tomcat-6.0.32\webap。。。
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:语法错误,意外的tINTEGER
…T.war“”C:\apache-tomcat-6.0.32\apache-tomcat-6.0.32\webapps。。。
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:no.floating literal不再存在;将0置于点之前
…omcat-6.0.32\apache-tomcat-6.0.32\webapps“;/Y;”
...                               ^
c:/chef/cache/cookbooks/file_sharing/recipes/default.rb:11:语法错误,意外的tINTEGER

…cat-6.0.32\apache-tomcat-6.0.32\webapps”;/Y;“
在Ruby中,
\
(反斜杠)用于字符串转义序列,如
\n
\t
。您可以使用
\
或单引号
,因为它们不处理反斜杠转义。

您必须在命令字符串中转义双引号和反斜杠,或者用单引号将其括起来。因为您没有执行ny变量插值,我建议后者

试试这个:

execute "file_sharing" do
  command 'copy "X:\B2BPortal-0.0.1-SNAPSHOT.war" "C:\apache-tomcat-6.0.32\apache-tomcat-6.0.32\webapps" /Y;'
end