gpt4 book ai didi

Phing:备份文件夹到局域网

转载 作者:行者123 更新时间:2023-12-01 10:08:33 25 4
gpt4 key购买 nike

我正在使用 phing 备份 eclipse 项目的数据库文件夹。我想将文件夹 (C:\xampp\mysql\data[projectname]) 复制到局域网文件夹 (\[备份计算机的 ip 地址]\projekte[projectname]\db)。相应的脚本是

<target name="copy_to_lan" description="copy db files to local area network">
<echo>Remove ${lan_folder}...</echo>
<delete dir="${lan_folder}" includeemptydirs="true" failonerror="true" />

<echo>Copying files from ${local_db_folder} to ${lan_folder} ..</echo>
<copy todir="${lan_folder}" verbose="true" includeemptydirs="true">
<fileset dir="${local_db_folder}">
<include name="**" />
</fileset>
</copy>
</target>

不幸的是,在执行脚本时,eclipse 告诉IOException:在第 443 行的 C:\xampp\php\PEAR\phing\system\io\PhingFile.php 中没有对\[备份计算机的 ip 地址]\projekte[项目名称]\db[项目名称] 的读取权限。

在备份计算机上删除和创建文件夹确实可以正常工作,但复制文件并不是因为权限错误,就像看起来那样。作为替代方案,我也确实通过 mkdir 在备份计算机上创建了文件夹,该文件夹有效但以同样的问题结束,即无法传输文件。

谢谢你的建议

最佳答案

我找到了这个 slideshare其中在幻灯片 #29 中提到 phing 复制任务无法通过网络工作。您必须改用 native Windows 命令(例如 Windows Vista 中的 xcopy 或 robocopy),在 phing exec 命令中调用。

所以在 Windows 上而不是使用类似 phing 的任务

<mkdir dir="${build.dir}" />

使用

<exec passthru="1" command="mkdir ${build.dir}" />

或者在你的情况下复制而不是

<copy todir="${lan_folder}" verbose="true" includeemptydirs="true">
<fileset dir="${local_db_folder}">
<include name="**" />
</fileset>
</copy>

使用

<exec passthru="1" command="robocopy ${local_db_folder} ${lan_folder} /MIR" />

<exec passthru="1" command="xcopy ${local_db_folder}\*.* ${lan_folder} /I /Y /E" />

标志的意思是:

  • /I:如果destination不存在且复制多个文件,假定destination必须是一个目录

  • /Y:禁止提示确认您要覆盖现有目标文件

  • /E:复制目录和子目录,包括空目录

passthru 属性是可选的,但它会在这些命令上输出窗口错误,对调试很有用。

适用于网络驱动器。

关于Phing:备份文件夹到局域网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com