Saya memiliki Sumber direktori dengan beberapa file di dalamnya, yang ingin saya salin ke folder Destination. Tujuan mungkin ada, dan mungkin sudah ada file di dalamnya. File apa pun dengan nama yang sama dengan yang ada di Sumber harus ditimpa ulang.
Jika saya menjalankan ini di Powershell:
Copy-Item Source Destination -Force -Recurse
Copy-Item Source Destination -Force -Recurse
Copy-Item Source Destination -Force -Recurse
Lalu baris pertama membuat folder .\Destination
dan menyalinnya .\Source
, itulah yang ingin saya ulangi untuk kali berikutnya. Namun, baris kedua akan menyalin .\Source
ke .\Destination
folder baru (membuat .\Destination\Source
), kemudian baris ketiga menimpa .\Destination\Source
lagi.
Bagaimana saya bisa membuatnya bertindak seperti dalam kasus pertama sepanjang waktu? Artinya, menimpa .\Destination
alih-alih menyalin ke dalamnya?
windows-7
powershell
Douglas
sumber
sumber
if exists
masalah dengan mudah dan tidak akan mengharuskan Anda untuk secara paksa menghapus tujuan Anda dengan baik, yang datang dengan bahaya sendiri.Jawaban:
Jadi masalahnya adalah itu
hanya berfungsi jika
bar
tidak ada danhanya berfungsi jika
bar
ada. Jadi untuk mengatasinya, Anda perlu memastikanbar
ada sebelum melakukan sesuatusumber
Jika Anda hanya ingin menyalin konten dari folder "sumber" gunakan
sumber
destination
sudah ada.Jawaban Steven Penny https://superuser.com/a/742719/126444 tidak menghapus konten asli dari direktori target, hanya menambahkannya. Saya perlu mengganti folder target sepenuhnya dengan konten sumber dan membuat 2 fungsi:
sumber
Katakanlah Anda memiliki struktur Direktori berikut
akar
Di folder Root Anda dapat mencapai hasil yang Anda inginkan dengan urutan perintah berikut:
$files = gci ./folder_b -name
cp ./folder_a/*.txt -Exclude $files ./folder_b
Hanya c.txt yang akan disalin
sumber