PowerShell脚本,用于将文件和文件夹(包括子文件夹)从一个位置移动到另一个早于x天的位置

PowerShell脚本,用于将文件和文件夹(包括子文件夹)从一个位置移动到另一个早于x天的位置,powershell,powershell-2.0,powershell-3.0,powershell-1.0,Powershell,Powershell 2.0,Powershell 3.0,Powershell 1.0,我开发了一个PowerShell脚本,它运行得非常好。唯一的挑战是子文件夹中的文件没有移动到目标 get-childitem -Path "\\servername\location" | where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} | move-item -destination "C:\Dumps" 我无法进一步自定义脚本。使用Get ChildItem命令上的-Recurse选项来访问子文件夹中的

我开发了一个PowerShell脚本,它运行得非常好。唯一的挑战是子文件夹中的文件没有移动到目标

get-childitem -Path "\\servername\location" |
    where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} |
    move-item -destination "C:\Dumps"

我无法进一步自定义脚本。

使用
Get ChildItem
命令上的
-Recurse
选项来访问子文件夹中的文件,然后通过管道将集合移动到
move Item

Get-ChildItem -Path "C:\Test" -Recurse |
  Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} |
  Move-Item -destination "C:\Dumps"
以下是一个屏幕截图:


不要浪费时间在PowerShell中重新发明
robocopy

robocopy \\servername\location C:\Dumps /e /mov /minage:31

对上述问题的简化

机器人副本A:\B:\/MIR/minage:31

哪里 A:你的消息来源是什么
B:\是您的目的地吗?

我需要一个快速的一行程序将所有数据从一个驱动器移动到另一个驱动器。这对我来说非常有效:


Get ChildItem“E:”-Recurse | Move Item-Destination“G:

此脚本正在将文件复制到目标,并且仅从主路径复制。我也想包括子文件夹。我想将它们移动到另一个位置。使用
/s
递归到子文件夹中。使用
/e
(而不是
/s
)也包括空的子文件夹。你说的“另一个地点”是什么意思?是否要保留文件夹结构?在这种情况下,您可以坚持使用PowerShell(使用@Musaab提到的
-Recursive
选项)。但是,这种方法会使您面临由于文件被覆盖而导致数据丢失的风险。感谢Ansgar…您的robocopy脚本完成了我想要的工作,而且我能够为另一种用途构建更多的脚本。robocopy通过逐点复制文件,然后删除它来完成移动。而是快速移动它。因此速度要慢得多。无法关闭此行为。@AnsgarWiechers在文件夹内的同一文件系统上移动时发生此行为。因为afaik没有其他人使用这种奇怪而缓慢的方法,所以值得一提的是Musaab。递归似乎不起作用。您能进一步帮助吗?您确定这些文件符合where object子句吗?我将用一个屏幕截图更新我的答案,以说明我是如何使用-Recursive选项的。检查它,让我知道我在做什么。你好,穆萨博…我现在遇到了一个新的挑战…使用上面的脚本…我正在尝试按计划在windows任务计划程序(windows 2008 server X84位)中计划此任务。powershell脚本不起作用…手动批量运行它可以完成此任务。你能帮我进一步吗?我已经提出了很多论点来证明这一点。但是没有任何结果。请帮助…看看我对这个问题的回答,它可能会有帮助。这不会保留文件夹结构