最可能的是,你需要括號爲您Dir.glob
方法,它採取只是第一個參數傳遞,剩下的,是被視爲FileUtils.cp_r
說法,嘗試用:
FileUtils.cp_r(
Dir.glob(
"#{node['default']['home']}/standalone/deployments/'*.ear'",
"#{node['default']['default_backup_path']}/oms_bkp_#{time}"
),
'destination/',
noop: true,
verbose: true
)
您正在向glob
方法傳遞兩個patterns
參數,這就是錯誤的原因:
no implicit conversion of String into Integer (TypeError)
儘量只使用cp_r
每個模式,如:
FileUtils.cp_r(
Dir.glob("#{node['default']['home']}/standalone/deployments/'*.ear'"),
'destination/',
noop: true,
verbose: true
)
FileUtils.cp_r(
Dir.glob("#{node['default']['default_backup_path']}/oms_bkp_#{time}"),
'destination/',
noop: true,
verbose: true
)
,我認爲你的目標是迭代獲得元素
"#{node['default']['home']}/standalone/deployments/'*.ear'"
"#{node['default']['default_backup_path']}/oms_bkp_#{time}"
所以你可以迭代這兩個目錄,並在t中使用這個模式他Dir.glob
方法,如:
patterns = [
"#{node['default']['home']}/standalone/deployments/'*.ear'",
"#{node['default']['default_backup_path']}/oms_bkp_#{time}"
]
patterns.each do |pattern|
FileUtils.cp_r Dir.glob(pattern), 'destination/', noop: true, verbose: true
end
凡'destination/'
是其中的元素將被複制,那你缺少的文件夾。
或者你要使用的default_backup_path
文件夾作爲目標的話,那麼你不需要Dir.glob
方法,只需將其添加爲dest
參數,爲字符串
FileUtils.cp_r(
Dir.glob("#{node['default']['home']}/standalone/deployments/'*.ear'"),
"#{node['default']['default_backup_path']}/oms_bkp_#{time}",
noop: true,
verbose: true
)
謝謝你的忠告。我試過這個,它給了我一個錯誤,說:「有一個錯誤:TypeError:沒有將字符串隱式轉換爲整數」 – kkrrss
所以,錯誤已經改變了,是不是它指向哪一行給出錯誤? –
是的。但它的行號相同。我是Ruby新手。所以一點點努力與此。 – kkrrss