试图将图像从一个文件夹移动到另一个文件夹,但这需要每小时安排一次,每次移动一个块,我将图像分块到每个文件夹中的文件夹中,每个文件夹中有1000张图像。
文件夹结构;
tobemoved\1 tobemoved\2 tobemoved\3 tobemoved\4 [etc.. up to 66]
这些文件将被移至网络\\images\web\upload
上的单个文件夹
是否可以使用Powershell脚本来实现这一目标,或者是否有实现此目标的简单建议?
答案 0 :(得分:3)
我不会使用注释中提到的“睡眠”,这意味着您只有一个长时间运行的脚本,而从故障中恢复的选项却很少。如果脚本崩溃,在重新启动之前,不会执行任何复制操作。
相反,使用Task Scheduler每小时运行一次脚本。它旨在按计划运行任务,并具有处理故障和重新运行的选项。
每个任务都在其自己的进程中运行,因此,如果上一个任务失败,则不会影响下一个任务-下一个任务仍会正常运行。
无需将图像批处理到文件夹中,您可以使用Select-Object
来完成此操作。
Get-ChildItem C:\folder\source -File -Recurse | Select-Object -First 1000 | Move-Item -Destination \\images\web\upload -WhatIf
这将按名称和路径选择前1000个文件:
C:\folder\source\imageA.jpg C:\folder\source\imageB.jpg C:\folder\source\folderA\imageF.jpg C:\folder\source\folderA\imageE.jpg C:\folder\source\folderB\imageD.jpg C:\folder\source\folderC\imageC.jpg
并将它们全部移至文件夹\\images\web\upload
:
\\images\web\upload\imageA.jpg \\images\web\upload\imageB.jpg \\images\web\upload\imageC.jpg \\images\web\upload\imageD.jpg [etc]
注意:这假定您使用的是Powershell的现代版本,因为-File
参数在早期版本中不可用。