将目标文件与源文件进行比较仅删除复制的文件。在源目录/子文件夹中每5分钟添加一个新文件

时间:2016-11-15 05:29:51

标签: powershell

我是PowerShell的新手 我在powershell中有以下代码 文件正从AS400服务器移动到\ ServerZoro \ AS400文件夹和#200子文件夹。

AS400管理员说他的一方正在工作

从Zoro服务器到Sharepoint 2013服务器文件被复制到#200个人文件夹(它们是销售报告)

Sharepoint代码运行正常,不包含在此处。

问题是: as400服务器不断将新文件推送到\ Serverzoro \ AS400文件夹和#subfolders(当脚本运行时)

我需要一些PowerShell代码: 1)在删除仅复制的#files之前,将目标文件与源(?)进行比较,以便在添加新文件时不会删除它们。

脚本每15分钟运行一次,我现在把它设置为30分钟。

Sharepoint方面完美地完成了上面的代码我遇到了问题。随机销售人员错过报告

一个星期,其中4人失去了4份报告。

下周,1人失去了一份报告

今天有4名推销员错过了4份报告。

帮助赞赏!!!

$SourceReportDump = "\\ServerZoro\as400"
# Drive X below goes into the sp2013 server perfectly
$TargetReportDump = "x:"

$IncludeFiles = ("*.pdf","*.xls","*.xlsx","*.txt")

$WebUrl = "http://sp2013.sitename.com/sites/reports"

$DocLibraryName = "AS400Reports"

$DocLibraryUrlName = "AS400Reports"

#Move reports into Sharepoint

$CopyReports = Get-ChildItem -Path $SourceReportDump | Copy-Item            -Destination $TargetReportDump -Recurse  

$MoveReports = Get-ChildItem -Path $SourceReportDump -Recurse -include            $IncludeFiles | sort datemodified -Descending | select -Skip 65 | Remove-Item

1 个答案:

答案 0 :(得分:1)

使用move命令而不是复制+删除(如果您的复制工作和删除不起作用?)

就像这样

$SourceReportDump = '\\ServerZoro\as400'
$TargetReportDump = 'x:'
$IncludeFiles = ("*.pdf","*.xls","*.xlsx","*.txt")

Get-ChildItem -Path $SourceReportDump -file -Recurse -include $IncludeFiles | %{$newpath=$_.DirectoryName -Replace [regex]::escape($SourceReportDump),$TargetReportDump;  if ($newpath -ne $TargetReportDump) {new-item -ItemType Directory  -path  $newpath -Force} ; move-item $_.FullName "$newpath\$($_.Name)" -Force  }