在Windows上耙 - 将目录复制到另一台服务器

时间:2010-07-07 15:35:12

标签: .net windows rake

我想用rake将一个.net网站部署到一个Windows服务器......在这方面有点新意,并且遇到了非常简单的事情...

如何将目录从本地文件夹复制到其他Windows服务器?

目前我有:

task :default => :CWS_Web_application

desc 'Depoly CWS Web application to preview environment'
task :CWS_Web_application do
    sh "echo Depoly CWS Web application to preview environment"
mv('MyDirectory', '//servername/c$/foldername', :verbose => true)
end

这显然不起作用 - 我认为问题是服务器路径:'// servername / c $ / foldername'

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

这是与windows混合的ruby,有多种方法可以做到这一点,但这就是我通过管道填充到cmd.exe所做的事情:

sh "del /q /f /s \\\\servername\\c$\\foldername\\subfoldername\\*.*"
sh "XCOPY .\\source_directory \\\\servername\\c$\\foldername\\subfoldername /E /Exclude:xcopy_excludes.txt"
sh "COPY .\\config\\website\\servername\\#{BUILD_CONFIGURATION}\\web.config \\\\servername\\c$\\foldername\\subfoldername"

您还可以执行以下操作:

sh "net use O: \\\\servername\\c$\\foldername\\subfoldername"
sh "copy *.* O:"
sh "net use O: /delete"

如果这是首选,可能允许您输入用户名和密码(如果需要)。运行rake脚本的帐户显然需要域/目录等的适当权限。

可能还有其他方法可以绕过这些,但我只是选择了第一件对我有用的方法。