Windows 资源管理器递归复制未知文件类型

Windows 资源管理器递归复制未知文件类型

我正在尝试移动单个根目录和根目录中的所有嵌套文件夹中的所有文件(可能为几种不同类型的文件)。树的每个分支中可能有几个不同级别的子目录,我需要抓取每个级别的每个文件,但事先并不知道可能有多少个级别。老实说,我还没有真正尝试过任何事情。过去,我可能用 Python 编写了一些简短而精巧的东西,但我想使用 PowerShell 中的登录/注销脚本来实现这一点,而不是将 Python 作为先决条件。我对 PS 的了解远远不够;如果有人能为我指出 Powershell 解决方案的大致方向,或者任何侵入性最小的东西,我非常乐意做任何必要的研究来实现它。我只是需要朝着正确的方向推动一下。任何帮助都非常感谢;我知道这是一个非常不寻常的请求。

答案1

只需执行批处理脚本(如果您想保留子目录结构)

语法是:

move "C:\path to\source folder\" "C:\path to\destination\"
pause

我已添加一个暂停,以便您可以验证它是否已被移动,如果您希望窗口自动关闭,请将其删除。

示例(我在命令提示符中运行它):

C:\Users\Dev>move "C:\Users\Dev\Desktop\New folder\lol" "C:\Users\Dev\Desktop\Ne
w folder\lel"
        1 dir(s) moved.

如果您不熟悉批处理文件,只需在记事本中输入并保存为anything.bat

这比 powershell 简单得多,您可以将脚本放在启动目录中,以便每次登录时使用。

答案2

这需要 PowerShell 3:

Get-ChildItem -Recurse -Path C:\SourceFolder -File | 
    % { Move-Item -WhatIf $_.FullName C:\DestFolder }

注意-WhatIf。这将阻止 move 命令实际执行。相反,它将在控制台中显示它将执行的操作。一旦您确信它将执行您想要的操作,您就可以删除-WhatIf并实际执行它。

相关内容