Bagaimana saya bisa menyalin file menggunakan perintah DOS ke dalam struktur direktori yang mungkin belum ada? Saya harus dapat memaksa pembuatan jalur direktori ke lokasi file target jika lokasi itu belum ada.
Misalnya, sudah ada file.txt di lokasi ini:
C:\file.txt
Dan saya ingin menyalinnya
C:\example\new\path\to\copy\of\file\file.txt
tetapi saat ini
C:\example\
dan semua subdirektori mungkin atau mungkin belum ada.
Pada dasarnya, saya mencari perintah "salin dan buat jalur target jika perlu". Apa yang akan Anda rekomendasikan adalah cara terbaik untuk mencapai ini?
Windows command line
judul / badan, bersama dengan jendela tag dan baris perintah (perhatikan bahwa cmd.exe adalah sinonim tag baris perintah ). Tag ms-dos harus dihapus; dan tag dos tidak boleh digunakan sama sekali dalam kondisi apa pun.Jawaban:
Ya, itu xcopy . Ini akan terlihat seperti:
Info XCOPY di
Anda mungkin juga ingin melihat ROBOCOPY , dalam kit sumber daya XP dan standar di Vista, Windows 7, dan Server 2008.
sumber
echo f |
dengan xcopy untuk menjawab prompt ini secara otomatis.Saya mencoba menggunakan sesuatu seperti:
Tapi itu akan bertanya kepada saya apakah itu file atau direktori. Karena saya punya itu dalam file batch dengan 40000 file, itu akan menjadi tidak praktis. Solusi ini hanya menyelesaikan sebagian masalah saya: ini menciptakan struktur direktori, tetapi membutuhkan interaksi pengguna. Saya menemukan solusi untuk masalah saya di sini:
https://stackoverflow.com/questions/4283312/batch-file-asks-for-file-or-folder
Yang pada dasarnya untuk menambahkan "*" di akhir file tujuan:
EDIT: seperti yang ditunjukkan oleh @romkyns, ini mungkin memiliki hasil yang tidak diinginkan jika Anda memiliki file yang memiliki nama yang sama ditambah sesuatu yang lain (seperti 'file.txt.bak'). Pada utas yang sama yang diposting di atas, solusi lain yang berfungsi adalah mem-pipkan "echo f" ke perintah Anda:
Di mana Anda harus mengganti "f" untuk huruf apa pun yang digunakan sistem Anda untuk file, jika Anda menggunakannya dalam bahasa lain ..
sumber
file.txt.bak
dalam direktori, tentu saja. Namun, ini mungkin berhasil dalam beberapa skenario.echo f |
, Anda tidak perlu lagi membuntuti*
.DOS, wow! Pokoknya Anda menggunakan perintah XCOPY .
sumber
Apakah menggunakan
copy
atauxCopy
, untuk menghindari kesalahan daricopy
atau prompt darixCopy
, menguji keberadaan folder yang diperlukan dan membuatnya jika perlu:atau gabungkan perintah dengan
&&
pada satu baris perintah:Hal yang sama bisa dilakukan dengan
move
alih - alihcopy
. Saya belajar tentang teknik ini dari jawaban StackOverflow tentang cara melakukannyamove
.sumber