Get-ChildItemcho phép bạn liệt kê các tệp và thư mục, bao gồm đệ quy với các bộ lọc tên tệp. Copy-Itemcho phép bạn sao chép một tập tin.
Có rất nhiều sự trùng lặp về mặt lựa chọn các tệp, thường thì Copy-Itemnó là đủ tùy thuộc vào chi tiết của những gì bạn cần (ví dụ: bạn có muốn giữ lại cấu trúc thư mục không?)
Để sao chép tất cả *.foovà *.bartừ StartFolder sang DestFolder:
Copy-Item -path "StartFolder" -include "*.foo","*.bar" -Destination "DestFolder"
Nếu bạn cần bảo toàn cấu trúc thư mục, mọi thứ trở nên khó khăn hơn vì bạn cần xây dựng tên thư mục đích, đại loại như:
$sourcePath = 'C:\StartFolder'
$destPath = 'C:\DestFolder'
Get-ChildItem $sourcePath -Recurse -Include '*.foo', '*.bar' | Foreach-Object `
    {
        $destDir = Split-Path ($_.FullName -Replace [regex]::Escape($sourcePath), $destPath)
        if (!(Test-Path $destDir))
        {
            New-Item -ItemType directory $destDir | Out-Null
        }
        Copy-Item $_ -Destination $destDir
    }
Nhưng robocopycó khả năng sẽ dễ dàng hơn:
robocopy StartFolder DestFolder *.foo *.bar /s
Cuối cùng, cách chọn sẽ phụ thuộc vào chi tiết của những gì cần thiết.
(Trong phần trên tôi đã tránh các bí danh (ví dụ như Copy-Itemthay vì copy) và sử dụng rõ ràng tên tham số ngay cả khi chúng là vị trí.)