Bagaimana cara menyalin struktur direktori tanpa menyalin file?

47

Saya memiliki folder dengan banyak subfolder dan file di dalamnya. Apakah ada cara untuk menyalin folder dan struktur direktori subfolder tanpa menyalin file yang dikandungnya, menggunakan cmd atau PowerShell?

Benteng
sumber

Jawaban:

45

Jika Anda ingin menyalin folder kosong juga.

xcopy C: \ Folder D: \ Folder / t / e

Michael Mantion
sumber
1
benar, /eharus digunakan juga.
1
XCOPY Build in Powershell secara default dan berfungsi dengan sempurna.
BenCes
29

Ya. XCOPY

XCopy source {destination}  /t

contoh

xcopy C:\Folders D:\Folders /t

lebih lanjut tentang xcopy dapat ditemukan di sini http://ss64.com/nt/xcopy.html

BroScience
sumber
5
Anda harus menambahkan /euntuk menyalin juga mengosongkan folder
18

Meskipun XCOPY masih berfungsi, Windows Vista dan yang lebih baru menyertakan ROBOCOPY yang memiliki lebih banyak fitur. Sintaks umum untuk menyalin pohon folder (termasuk folder kosong) tanpa file adalah:

robocopy "A:\Source folder" "B:\Destination folder" /e /xf *

Theodore
sumber
3

Metode PowerShell yang tidak perlu menyalin setiap file dan kemudian menghapusnya:

Copy-Item -LiteralPath '.\source' -Destination 'C:\path\to\copy' -Recurse -Filter {PSIsContainer -eq $true}

Atau lebih ringkas:

copy .\source C:\path\to\copy -r -fi PSIsContainer

Satu-satunya trik yang menarik di sini adalah pemfilteran di PSIsContainerproperti, yang berlaku untuk direktori tetapi bukan file.

Ben N
sumber
Ini super cepat juga!
Regmi
1

Lihatlah aplikasi 47folder, alat Windows yang praktis dan gratis, melakukan apa yang Anda butuhkan melalui GUI yang bagus. masukkan deskripsi gambar di sini

PERINGATAN: Mantan tautan ( http://47foldersapp.com/ ) sekarang (Nov 2017) mengarah ke iklan pakaian. Salinan Internet Archive terakhir yang baik ada di sini . Perangkat lunak mungkin masih tersedia dari situs unduhan freeware seperti ini .

andymcgregor
sumber
0

Mungkin ada solusi yang lebih baik, tetapi saya akan melihat ini:

  • Salin semuanya, lalu kosongkan folder dengan skrip.

  • Buat skrip yang akan menyalin semuanya jika tidak memiliki ekstensi. Kecuali Anda memiliki file tanpa ekstensi di folder, yang seharusnya tidak Anda miliki, itu akan berfungsi, karena, well. Folder tidak memiliki ekstensi. Sesuatu yang akan terlihat seperti ini di pseudocode:

open_directory ($ path);
while ($ file = get_directory_content) {
if (kosong (get_file_extension ($ file))) {
copy_the_file ($ file, $ tujuan);
}
}
close_directory;

Ariane
sumber
Sayangnya, kami memiliki file tanpa ekstensi. Dari .placeholder untuk repo kode, ke beberapa file data tertentu.
Benteng
Oh Baik. Mungkin ada hal if (itu folder), kalau begitu. Tapi uhm Hal xcopy di atas sepertinya itu hal yang tepat untuk Anda saat itu. Kecuali jika tidak, dalam hal ini Anda dapat menjalankan skrip untuk 1. menyalin semua folder dan 2. mengosongkan semua folder. Atau sesuatu. Tapi ini ... Panjang. xD
Ariane
0

Gunakan PowerShell untuk melakukannya menggunakan. Buat Salinan Folder dan kemudian Remove-Item -Path "C:\test\*.*" -recurse

pengguna1586957
sumber
-1

Sejauh yang saya tahu ada perangkat lunak pihak ketiga yang dapat menyediakan fungsi ini jika Anda ingin melakukan dengan command prompt maka perintah copy ada di luar sana. ketik bantuan salin dalam cmd yang menyediakan detail tentang bagaimana Anda menyalin file melalui cmd.
setelah menyalin masuk ke folder melalui cmd dan jalankan perintah

del *. *
yang menghapus file karena folder tidak memiliki. karakter

vishal
sumber
3
Menghapus file baik-baik saja, tetapi siapa bilang nama folder tidak dapat mengandung titik / periode juga?
Karan