Pertanyaan salin file ke beberapa folder melalui skrip batch


Saya ingin menyalin file (file.txt) di dalam semua folder tujuan yang diberikan. Saya ingin membuat file batch yang melakukan pekerjaan, tapi saya tidak begitu mahir dalam sintaks batch Windows.


2
2018-05-01 15:28


asal


Harap klarifikasi: apakah Anda memiliki file sumber tunggal yang ingin Anda salin ke beberapa tujuan? (mis. semua subfolder di dalam X: / SomeFolder)? - Roee Adler
Sesuatu seperti salin myfile.txt ke semua folder yang ditemukan di d: \ Destination - Remus Rigo


Jawaban:


Anda dapat menggunakan versi lanjutan dari for perintah tersedia dari Windows NT 4 dan seterusnya:

Anda memerlukan sesuatu seperti ini dalam file batch:

for /D %%f in ("%1\*") do copy "%2" "%%f\"

File batch berfungsi sebagai berikut:

  • Argumen pertama adalah direktori tujuan
  • Argumen kedua adalah file yang akan disalin

Itu for perintah dengan /D beralih iterates atas semua direktori di jalur yang diberikan (di sini: %1) dan memanggil perintah pada setiap iterasi. Perintah Said adalah operasi copy yang menyalin file ke setiap direktori.

Tentu saja, karena file batch hanya satu baris, Anda juga dapat mengeksekusinya langsung pada baris perintah. Perhatikan bahwa variabel untuk for hanya memiliki satu %, kemudian.


4
2018-05-01 15:49



Oke, lakukan penulisan ulang yang cukup lengkap. Urungkan jika Anda melihat kebutuhan tetapi beberapa hal yang perlu diingat: (1) Menggunakan cd dalam file batch buruk, karena meninggalkan pemanggil di direktori yang sama sekali berbeda. Jika Anda bisa menghindarinya, lakukanlah dan pushd/popd biasanya adalah cara untuk pergi jika Anda perlu mengubah direktori untuk sementara. (2) Selalu mengelilingi argumen ke perintah dengan tanda kutip jika mereka mungkin berisi spasi. Ini berlaku terutama untuk nama jalan. (3) Tidak pernah pernah lakukan a for /f lebih dari output dir jika Anda tidak sangat membutuhkannya. Dalam konfigurasi default, konsol menggunakan font raster - Joey
yang menyebabkan semua output Unicode dikonversi menjadi (sangat) warisan kode OEM, menyebabkan karakter tanpa aksen atau tanda tanya muncul. Bersenang-senang menemukan itu nama itu. Sejak for mampu melakukan iterasi terhadap file dan direktori, baik di folder tertentu dan secara rekursif di pohon yang tidak pernah Anda gunakan for /f dan dir untuk kasus-kasus itu. - Joey


Anda mungkin ingin membaca tentang Xcopy demikian juga.


2
2018-05-01 15:56