2014-09-25 34 views
10

'da kopya öğesiyle dosyaların üzerine yazma Bir klasörün içeriğini kopyalamaya çalışıyorum ancak hariç tutmak istediğim iki dosya var. Tüm içeriğin geri kalanı yeni bir yere kopyalanmalı ve bu yeni konumdaki mevcut içeriğin üzerine yazılmalıdır.PowerShell

Bu benim komut dosyasım. Hedef klasörüm boşsa iyi çalışır, ancak dosya ve klasörüm varsa, bunların üzerine yazmaz.

+2

için neden kullanmak [Robocopy] (http://technet.microsoft.com/en-us/library/cc733145.aspx) yerine? – vonPryz

+0

Bu işe yaramalı ... bir hata mesajı var mı? Bu, dağıtım komut dosyasının bir parçasıysa, dosyalar kopyalandıktan sonra kilitlenir (IIS/Web sitesi başlatılmışsa ne olur). – Raf

+0

[kaynak dizindeki dosyaları hedef dizine kopyala ve belirli dosya türlerini belirtilen dizinlerden hariç tut] olası bir kopyası (http://stackoverflow.com/questions/18771291/copy-files-from-source-directory-to-target-directory -ve-hariç-spesifik dosya-t) –

cevap

14

Copy-Item -Exclude anladığım kadarıyla doğru yapıyorsunuz demektir. Genellikle ne yapıyoruz, o zaman 1'st almak ve böylece

Get-Item -Path $copyAdmin -Exclude $exclude | 
Copy-Item -Path $copyAdmin -Destination $AdminPath -Recurse -force 
+0

Teşekkürler bu işe yaradı – srk786

+0

Her zaman yardım için mutluyuz. –

5

Robocopy birçok kopya seçenekleri ile güvenilir kopyalanması için tasarlanmıştır gibi Get-Item kullanma hakkında, dosya seçimi dosyaları /e dışlar vb /xf ne yeniden başlatın sonra yapmak alt dizinleri

robocopy $copyAdmin $AdminPath /e /xf "web.config" "Deploy"

+0

Muhtemelen OP'nin aradığı şey değildi, ama bana yardımcı oldu :-) – Rob

+0

Bir yoldan diğerine kopyala ('$ copyAdmin $ AdminPath')'/xf' anahtarı, hangi dosyaların hariç tutulacağını tanımlar, yani 'web.config' ve 'Deploy' – clD