2011-07-05 38 views
6

Tôi đang cố gắng để có được tập lệnh PowerShell đơn giản này để hoạt động. Tôi đã googled, nhưng tôi không thể tìm thấy câu trả lời.Tên tệp trùng khớp và sao chép bằng PowerShell

Như bạn thấy, tôi đang xác định vị trí nguồn và đích.

Biến $ được gửi đang thực hiện dữ liệu để nhận ngày tháng năm vì tên tệp chứa ngày.

Biến bộ lọc $ có chuỗi mà tôi đang tìm kiếm, bao gồm phần ngày.

Lệnh Get-ChildItem hoạt động độc lập, nhưng khi tôi áp dụng bộ lọc, nó sẽ không trả về gì cả. Tôi đang thiếu gì để làm việc này?

$source = "C:\MSSQL.1\Backup\" 
$destination = "D:\MSSQL.2\Backup\" 
$filedate = (get-date).AddDays(-1).tostring('yyyyMMdd') 
$filter = "FULL_(local)_Product_" + $filedate + "*" 
Get-ChildItem -Path $source -filter $filter | Copy-Item -Destination $destination 
+0

Kết luận đơn giản nhất là bộ lọc không phù hợp. Bạn có thể vui lòng chỉnh sửa câu hỏi của mình để thêm vào câu hỏi sau: chuỗi $ filter thực sự bằng và tên của một trong các tệp mà nó NÊN khớp. –

+0

Làm việc tốt cho tôi. Những gì bạn nhận được với: gci $ source "FULL_ (cục bộ) _Product_ *" –

Trả lời

13

thử lọc danh sách các tập tin bằng cách sử dụng các Where-Object cmdlet-match điều hành:

$source = "C:\MSSQL.1\Backup\" 
$destination = "D:\MSSQL.2\Backup\" 
$filedate = (Get-Date).AddDays(-1).ToString("yyyyMMdd") 
$filter = "FULL_(local)_Product_$filedate" 
Get-ChildItem -Path $source | Where-Object { $_.Name -match $filter } | Copy-Item -Destination $destination 

Nếu bạn vẫn không nhận được bất kỳ kết quả, sau đó chúng ta cần phải nhìn vào các bộ lọc riêng của mình.

nguồn lực liên quan:

+0

Tác phẩm này - cảm ơn rất nhiều – mealies

+0

| Copy-Item -Destination $ đích –

Các vấn đề liên quan