如何使用 PowerShell 复制特定扩展名的文件?

要使用 PowerShell 使用特定文件扩展名复制文件,我们可以使用 Copy-Item 命令。

下面的命令将仅将 .ps1 文件从源复制到目标。

例如,

PS C:\> Copy-Item -Path C:\Temp -Recurse -Filter *.ps1 -Destination C:\Temp1\ -Verbose

如果C:\Temp1不存在,它将创建目标文件夹,然后复制文件的内容,但此命令的问题是它也会复制没有 .ps1 文件的子文件夹。

所以要复制没有空目录和特定文件扩展名的相同文件夹结构,我们可以编写代码来检查复制后目录的大小,如果文件夹为空,则删除,但这将是一个漫长的过程。

我们可以使用xCopyRoboCopy命令来克服上述问题。

PS C:\> robocopy c:\temp c:\temp1 "*.ps1" /s

上面的命令会将扩展名为 .ps1 的文件从C:\temp复制到C:\temp1,而没有空文件夹。