【发布时间】:2013-03-21 08:08:51
【问题描述】:
我们的要求是将文件从源文件夹复制到目标文件夹。
该子句是在脚本的第一次运行期间应复制所有内容,但在随后的运行中,它应仅复制那些尚未复制且是新文件的文件。
问题出在目标文件夹中,我们有一个脚本可以处理文件并在执行后将其删除。所以我们不希望将源中的重复文件复制到目标。
例子
source-> abc.txt,def.xt
第一次运行后
dest->abc.txt,def.txt
后续运行
source->abc.txt,def.xt, ghi.txt
dest->abc.txt,def.xt, ghi.txt
现在,当另一个脚本在 dest 文件夹上运行并删除 abc.txt 和 ghi.txt 时,逻辑应该是
source->abc.txt,def.xt, ghi.txt,jkl.txt
现在脚本运行时应该只复制新文件
dest->ghi.txt, jkl.txt
我在想我们是否可以在脚本第一次运行后将输出记录到 txt 文件中,然后在将任何内容从源文件夹复制到之前设置条件以检查该日志文件是否存在该文本文件目的地。
希望能解释一下。
谢谢
【问题讨论】:
-
使用
robocopy。它是为此类任务而设计的。 -
我用 robocopy,$src_folder="C:\Users\Desktop\Test" $dest_folder="C:\Users\Desktop\Test1" Robocopy $src_folder $dest_folder /m IF ($LASTEXITCODE -eq 0) { 写入主机复制成功} Else { 写入主机错误复制文件} 但问题是它正在复制所有内容。我想要源文件夹中但从未复制到目标文件夹的内容
-
作为documented,选项
/m复制所有设置了archive属性的源文件。如果要排除目标中已存在的文件,请使用/xx(排除额外文件)。如果您想排除在过去任何时候复制到目标的文件,无论它们是否仍然存在于目标中,您确实必须使用自定义脚本和复制历史记录。 -
@ansgar 这是正确的,正是我们打算做的......所以在创建自定义脚本时需要帮助......如果你能指导我......我尝试应用逻辑但不是很熟悉使用 windows powerdhell commandlets..这是我的测试脚本:
-
不知何故无法粘贴整个脚本..将其分片发布
标签: powershell copy