Saya mencoba mengunduh file dari situs web (mis. Http://www.example.com/package.zip ) menggunakan file batch Windows. Saya mendapatkan kode kesalahan ketika saya menulis fungsi di bawah ini:
xcopy /E /Y "http://www.example.com/package.zip"
File batch sepertinya tidak menyukai "/" setelah http. Apakah ada cara untuk keluar dari karakter tersebut sehingga tidak dianggap sebagai parameter fungsi?
windows
batch-file
download
scripting
James
sumber
sumber
Jawaban:
Dengan PowerShell 2.0 (Windows 7 prainstal) Anda dapat menggunakan:
Dimulai dengan PowerShell 3.0 (Windows 8 prainstal), Anda dapat menggunakan
Invoke-WebRequest
:Dari file batch mereka dipanggil:
(PowerShell 2.0 tersedia untuk instalasi di XP, 3.0 untuk Windows 7)
sumber
.bat
dan.ps1
file benar-benar dapat mengacaukan barang-barang Anda.Ada komponen Windows standar yang dapat mencapai apa yang Anda coba lakukan: BITS . Ini telah disertakan dalam Windows sejak XP dan 2000 SP3.
Lari:
Nama pekerjaan hanyalah nama tampilan untuk pekerjaan unduhan - atur ke sesuatu yang menggambarkan apa yang Anda lakukan.
sumber
bitsadmin
tidak tersedia di Windows XP Home Edition.Ini mungkin sedikit keluar dari topik, tetapi Anda dapat dengan mudah mengunduh file menggunakan Powershell . Powershell hadir dengan versi Windows modern sehingga Anda tidak perlu menginstal barang tambahan apa pun di komputer. Saya belajar bagaimana melakukannya dengan membaca halaman ini:
http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/
Kodenya adalah:
sumber
System
dalamSystem.Net.WebClient
Terakhir saya periksa, tidak ada perintah baris perintah untuk menyambung ke URL dari baris perintah MS. Coba wget untuk Windows:
http://gnuwin32.sourceforge.net/packages/wget.htm
atau URL2File:
http://www.chami.com/free/url2file_wincon.html
Di Linux, Anda dapat menggunakan "wget".
Sebagai alternatif, Anda dapat mencoba VBScript. Mereka seperti program baris perintah, tetapi mereka adalah skrip yang ditafsirkan oleh host skrip wscript.exe. Berikut adalah contoh mengunduh file menggunakan VBS:
/server/29707/download-file-from-vbscript
sumber
Mendownload file di PURE BATCH ...
Tanpa JScript, VBScript, Powershell, dll ... Hanya Batch murni!
Beberapa orang mengatakan tidak mungkin mengunduh file dengan skrip batch tanpa menggunakan JScript atau VBScript, dll ... Tapi mereka pasti salah!
Berikut adalah metode sederhana yang tampaknya berfungsi cukup baik untuk mengunduh file dalam skrip batch Anda. Ini harus berfungsi di hampir semua URL file. Bahkan dimungkinkan untuk menggunakan server proxy jika Anda membutuhkannya.
Untuk mendownload file, kita bisa menggunakan BITSADMIN.EXE dari sistem Windows. Tidak perlu mengunduh / menginstal apa pun atau menggunakan JScript atau VBScript, dll. Bitsadmin.exe ada di sebagian besar versi Windows, mungkin dari XP ke Windows 10.
Nikmati!
PEMAKAIAN:
Anda dapat menggunakan perintah BITSADMIN secara langsung, seperti ini:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Server Proxy:
Untuk menghubungkan menggunakan proxy, gunakan perintah ini sebelum mengunduh.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Klik LINK ini jika Anda ingin info lebih lanjut tentang BITSadmin.exe
PEMECAHAN MASALAH:
Jika Anda mendapatkan kesalahan ini: "Tidak dapat terhubung ke BITS - 0x80070422"
Pastikan layanan windows "Background Intelligent Transfer Service (BITS)" diaktifkan dan coba lagi. (Ini harus diaktifkan secara default.)
FUNGSI KUSTOM
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Saya membuat 3 fungsi ini untuk menyederhanakan perintah bitsadmin. Lebih mudah digunakan dan diingat. Ini bisa sangat berguna jika Anda menggunakannya beberapa kali dalam skrip Anda.
HARAP DICATAT ...
Sebelum menggunakan fungsi ini, Anda harus menyalinnya terlebih dahulu dari CUSTOM_FUNCTIONS.CMD ke bagian akhir skrip Anda. Ada juga contoh lengkapnya: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
Fungsi utama, akan mendownload file dari URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opsional) Anda dapat menggunakan fungsi ini jika Anda perlu menggunakan server proxy.
Memanggil fungsi: DOWNLOAD_PROXY_OFF akan menonaktifkan server proxy.
CONTOH:
CALL :DOWNLOAD_PROXY_ON "proxy-server.com:8080"
CALL :DOWNLOAD_FILE "http://example.com/File.zip" "C:\Downloads\File.zip"
CALL :DOWNLOAD_PROXY_OFF
CUSTOM_FUNCTIONS.CMD
UNDUH-CONTOH.CMD
sumber
kemudian
atau cukup klik dua kali untuk menguji di windows
sumber
AFAIK, Windows tidak memiliki alat baris perintah bawaan untuk mengunduh file. Tetapi Anda dapat melakukannya dari VBScript, dan Anda dapat membuat file VBScript dari batch menggunakan pengalihan echo dan keluaran:
Penjelasan lebih lanjut di sini
sumber
Unduh Wget dari sini http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe
Kemudian instal.
Kemudian buat beberapa file bat dan masukkan ini ke dalamnya
Sesuaikan URL dan jalur file di skrip
sumber
Anda tidak dapat menggunakan xcopy melalui http. Coba unduh wget untuk windows. Itu mungkin berhasil. Ini adalah utilitas baris perintah untuk mengunduh file non-interaktif melalui http. Anda bisa mendapatkannya di http://gnuwin32.sourceforge.net/packages/wget.htm
sumber
Jika bitsadmin bukan secangkir teh Anda, Anda dapat menggunakan perintah PowerShell ini:
sumber
Gunakan Bat To Exe Converter
Buat file batch dan masukkan sesuatu seperti kode di bawah ini ke dalamnya
atau
dan mengubahnya menjadi exe.
sumber
Selain wget, Anda juga dapat menggunakan aria2 untuk mendownload file dari URL tertentu.
Lihat tautan berikut yang akan menjelaskan lebih lanjut tentang aria2:
https://aria2.github.io/
sumber
BATCH mungkin tidak dapat melakukan ini, tetapi Anda dapat menggunakan JScript atau VBScript jika Anda tidak ingin menggunakan alat yang tidak diinstal secara default dengan Windows.
Contoh pertama di halaman ini mengunduh file biner di VBScript: http://www.robvanderwoude.com/vbstech_internet_download.php
Jawaban SO ini mendownload file menggunakan JScript (IMO, bahasa yang lebih baik): Windows Script Host (jscript): bagaimana cara mendownload file biner?
Skrip batch Anda kemudian dapat memanggil JScript atau VBScript yang mengunduh file tersebut.
sumber
Ini harus berfungsi, saya melakukan hal berikut untuk proyek server game. Ini akan mengunduh zip dan mengekstraknya ke direktori apa pun yang Anda tentukan.
Simpan sebagai name.bat atau name.cmd
Asli: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver/blob/master/steam.cmd
sumber
Saya menemukan skrip VB ini:
http://www.olafrv.com/?p=385
Bekerja seperti pesona. Dikonfigurasi sebagai fungsi dengan panggilan fungsi yang sangat sederhana:
Berasal dari: http://www.ericphelps.com/scripting/samples/BinaryDownload/index.htm
Berikut adalah kode lengkap untuk redundansi:
sumber
Pertanyaan ini memiliki jawaban yang sangat bagus di sini . Kode saya murni berdasarkan jawaban itu dengan beberapa modifikasi.
Simpan potongan di bawah sebagai wget.bat dan letakkan di jalur sistem Anda (misalnya, Letakkan di direktori dan tambahkan direktori ini ke jalur sistem.)
Anda dapat menggunakannya di cli Anda sebagai berikut:
wget url/to/file [?custom_name]
dimana
url_to_file
wajib dancustom_name
opsionalUrl file dan nama file yang disimpan ditampilkan dalam teks berwarna ansi. Jika itu menyebabkan masalah bagi Anda, kemudian memeriksa ini proyek github.
PS Kode ini mengharuskan Anda untuk menginstal PowerShell.
sumber
Anda dapat menyiapkan tugas terjadwal menggunakan wget, gunakan bidang "Jalankan" dalam tugas terjadwal sebagai:
sumber
Ada utilitas (berada dengan CMD) di Windows yang dapat dijalankan dari CMD (jika Anda memiliki akses tulis):
Dibangun pada aplikasi Windows. Tidak perlu unduhan eksternal.
Diuji pada Win 10
sumber
gunakan ftp:
Ubah semua dalam tanda bintang agar sesuai dengan situasi Anda.
sumber