Get-ChildItem文件排序

时间:2018-01-02 19:32:11

标签: powershell get-childitem

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

有时,运行此脚本时,仍会有一两个文件正在转移到我们的存储驱动器。如果我让脚本在仍然从我们的客户传输时移动该文件,它会被破坏并且稍后无法打开。

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

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

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

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

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

1 个答案:

答案 0 :(得分: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。