Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文件从一台windows计算机复制到另一台windows计算机?_Windows_File_Batch File_Hudson - Fatal编程技术网

如何将文件从一台windows计算机复制到另一台windows计算机?

如何将文件从一台windows计算机复制到另一台windows计算机?,windows,file,batch-file,hudson,Windows,File,Batch File,Hudson,如何将文件从一台Windows计算机复制到另一台Windows计算机?所以我可以写一个批处理脚本,可以从Hudson机器上运行它。 我的要求是,我喜欢通过位于另一台windows机器上的Hudson(war将在这台机器上生成)在位于另一台windows机器上的tomcat服务器上远程部署war。仅供参考,两个windows都在同一个网络或intranet上。对于Linux部署,我们使用的是plink。Windows部署是否有其他选择 提前感谢取决于您实际想要做什么以及安全要求是什么。有几种选择。

如何将文件从一台Windows计算机复制到另一台Windows计算机?所以我可以写一个批处理脚本,可以从Hudson机器上运行它。 我的要求是,我喜欢通过位于另一台windows机器上的Hudson(war将在这台机器上生成)在位于另一台windows机器上的tomcat服务器上远程部署war。仅供参考,两个windows都在同一个网络或intranet上。对于Linux部署,我们使用的是plink。Windows部署是否有其他选择


提前感谢

取决于您实际想要做什么以及安全要求是什么。有几种选择。最简单的方法是对远程计算机使用带有UNC路径的copy命令
\\hostname\sharename\directory\actual.file
。重要的是,远程计算机已定义共享,并允许运行hudson的用户进行写访问(在文件和共享级别)。这也意味着您不能在本地_系统帐户下运行hudson。(如果将Hudson作为服务运行,则为默认选项)

实际上我更喜欢
robocopy
而不是
copy
。我认为微软免费提供robocopy。学习robocopy的文档(帮助),它是一个管理员程序,他们应该知道自己在做什么。Robocopy不仅健壮,若和错误的开关一起使用,它还可以“无意”删除文件

其他选项包括SCP和FTP、主/从配置,其中从机使用http/https协议从Hudson下载工件

编辑:

维苏的评论

谢谢你的及时回复。作为 你的回答说明你有 如果我对哈德逊有很好的了解,我会的 我想详细说明我的要求。 我的要求是,我喜欢部署 位于远程的tomcat服务器中的war 在另一台windows计算机中通过 哈德逊(Hudson)(战争将在本周产生) 机器)位于另一个 windows计算机。仅供参考,两个窗口都是 在同一网络或内部网上。一个 关于Linux部署,我们还有很多事情要做 使用plink。还有别的选择吗 用于Windows部署

我通常部署到WebSphereApplicationServer。所以我需要多读一点。看起来您只需要将wat文件放到正确的目录中,就可以完成或更改tomcat当前使用的配置文件,并且tomcat将自动拾取它(只要所有配置都正确)

由于部署场景和安装非常简单,我会考虑两个选项。我的首选方法是在目标Windows计算机上安装ssh服务,并重用已有的plink脚本(用于此项目或其他项目)。这里的想法是坚持一种技术。另一个选项是使用windows共享。在这种情况下,请确保Hudson使用“真实”帐户,以便Hudson不需要显式映射共享(可以编写脚本,但密码可能未加密存储)。在具有Hudson写入权限的目标系统上创建共享。其他的都是一份拷贝。对于复制,您应该看看robocopy,因为它对于此类作业来说远远优于copy命令。我在这里的假设是构建作业进行部署

如果您有两个作业,第一个作业创建工件,另一个作业部署工件。我目前更喜欢使用wget从job1检索工件。这意味着job1将归档其工件。第二个作业从第一个作业获取工件(使用wget和job1的运行URL)。在这种情况下,您可以在目标机器上运行Hudson从机,并且可以在本地部署。您可以在windows和Linux上使用类似的脚本。您可以使用cygwin获得用于windows的wget(至少我这么认为)。有了cygwin,您甚至可以在windows上使用linux脚本。优点是,您不需要共享,也不需要单独的工件存储库。如果将从属服务器作为服务运行,则甚至不需要在目标计算机上安装ssh服务器

如果手动触发部署,则可以使用。实际上这是一项工作,您不必担心在工作之间移动工件。缺点是,您只能从最近的作业运行进行部署,因为它取决于作业的工作区。不可能部署旧版本(如果您的项目现在已损坏,或者由于应用程序中存在重大错误而需要降级)

如果您已经有一个工件存储库,请使用主从设置,并从目标机器上检查存储库中的工件


我可以想出更多的选择,这将变得越来越深奥。最后,您必须决定您最喜欢什么,什么最容易实现和维护,以及满足您的其他(次要)要求(例如某些安全限制)。

在linux终端中使用以下命令行可以做到这一点:

scp -3 user1@ip:path/from/directory/ user2@ip:path/to/directory
将出现提示,要求输入以下密码:

user1@ip's password: user2@ip's password:
如果在第一个密码后按enter键按顺序输入两个密码,则该密码应接受,但不会接受。 即使您按顺序再次输入两个密码,但在第一个密码后不按enter键,它也不会再次接受

您必须先给出user2的密码,然后按enter键,然后键入user1的密码,然后按enter键。这会奏效的


我知道这听起来不对,但只有这样才行。这是Linux终端外壳中的一个错误。

复制源文件targetfile
?我认为您需要更具体地了解这些Windows计算机如何相互连接,是否存在任何网络共享等。感谢您的及时回复。由于你的回答说明你对哈德逊有很好的了解,我想详细说明我的要求。我的要求是,我喜欢在tomcat服务器中部署war