Get-ChildItem文件排序

问题描述 投票:0回答:1

我有一个脚本,我在我的工作中运行,使用get-childitem获取存储驱动器中的某种类型的所有文件并进行排序并将它们移动到存档驱动器。我想让这个过程自动化,每天运行一次,但我意识到这样做会有问题。

有时,当运行此脚本时,一个或两个文件仍将在转移到我们的存储驱动器的过程中。如果我让脚本在仍然从我们的客户传输时移动该文件,它将被破坏并且以后不会打开。

我知道如何基于文件类型和日期以及其他基本参数进行过滤,但我不完全确定如何告诉此脚本排除当前大小不断增加的文件。

以下是我目前用于过滤我想要移动的内容:

$TargetType = "*.SomeFileType"
$TargetDrive = "\\Some\UNC\Path"

Get-ChildItem $targetdrive\$targettype | ForEach-Object {$_.fullname} | Sort-Object | out-file $outStorageMove

此外,目前我将get-childitem发现的所有内容放入文本文件中,稍后调用该文件以便我可以手动编辑我想要移动的内容。如果可能的话,我想摆脱这一步。

powershell get-childitem
1个回答
0
投票

因此,移动本质上是复制和删除。

所以,就像gvee state一样,Copy-Item是一个更好的选择,让你超越你声明的关注,监控副本完成。我的补充是在复制完成后删除,并且您已经验证了副本。

或者使用Bits作为工作来完成此任务。

使用Windows PowerShell创建BITS传输作业https://msdn.microsoft.com/en-us/library/windows/desktop/ee663885(v=vs.85).aspx您可以使用PowerShell cmdlet创建同步和异步后台智能传输服务(BITS)传输作业。

本主题中的所有示例都使用Start-BitsTransfer cmdlet。要使用cmdlet,请务必先导入模块。要安装模块,请运行以下命令:Import-Module BitsTransfer。有关更多信息,请在PowerShell提示符下键入Get-Help Start-BitsTransfer。

© www.soinside.com 2019 - 2024. All rights reserved.