如何使用–Recurse参数在PowerShell中复制文件夹内容?

要将文件夹的内容复制到PowerShell中的目标文件夹,您需要提供该文件夹的源路径和目标路径,但需要确保在源路径后使用通配符(*),因此整个文件夹内容将被复制。

如果仅提供不带(*)的源文件夹,则仅复制文件夹名称而不包含其内容。我们还需要确保源文件夹和目标文件夹都存在。

示例

Copy-Item -Path D:\Temp\ -Destination D:\TempContent -PassThru

输出结果

使用上面的命令时,您将看到输出为none,因为未指定(*)字符。

PS C:\WINDOWS\system32> Copy-Item -Path D:\Temp\ -Destination D:\TempContent -PassThru
    Directory: D:\TempContent
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       06-03-2020     10:55                Temp

输出结果

但是,当您指定(*)字符时,文件夹内容将被复制。

示例

Copy-Item -Path D:\Temp\* -Destination D:\TempContent -PassThru

输出结果

PS C:\WINDOWS\system32> Copy-Item -Path D:\Temp\* -Destination D:\TempContent -PassThru
    Directory: D:\TempContent
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       06-03-2020     10:56                GPO_backup
d-----       06-03-2020     10:56                LGPO
-a----       27-01-2020     22:21          13962 Alias1
-a----       26-01-2020     19:20          13818 aliases.txt
-a----       07-05-2018     23:00            301 cars.xml
-a----       18-01-2020     18:25             48 delim.txt
-a----       18-01-2020     17:25             14 GetContentExample.txt
-a----       29-12-2017     15:16           4526 healthcheck.htm
-a----       29-12-2017     15:16           4526 healthcheck1.htm
-a----       20-01-2020     12:10        1148809 PowerShellcommands.csv
-a----       17-01-2020     22:04          55190 Processes.txt
-a----       18-01-2020     18:22          27620 ReadC.txt
-ar---       13-01-2020     18:19              0 Readonlyfile.txt
-a----       08-12-2017     10:24          48362 servicereport.htm
-a----       08-12-2017     10:24          48362 servicereport1.htm
-a----       18-01-2020     18:44             22 stream1.txt
-a----       08-12-2017     10:16            393 style.css
-a----       12-12-2017     23:04           1034 tes.htmoutput.htm
-a----       08-12-2017     11:29           7974 Test.xlsx
-a----       25-10-2017     08:13            104 testcsv.csv
-a----       18-01-2020     16:26          27620 testreadC.txt

在上面的示例中,您可能已经注意到,还有子文件夹,例如LGPO和GPO_backup,但是当子文件夹复制到目标位置时,它们为空,并且仅父文件夹下的文件被复制。

示例

要同时复制子文件夹的内容,您需要使用–Recurse参数。下面给出一个例子。

PS C:\WINDOWS\system32> Get-ChildItem D:\TempContent\LGPO\
    Directory: D:\TempContent\LGPO
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       01-06-2017     03:22         410088 LGPO.exe
-a----       01-06-2017     02:25         638115 LGPO.pdf