Próbuję pobrać plik z witryny internetowej (np. Http://www.example.com/package.zip ) przy użyciu pliku wsadowego systemu Windows. Otrzymuję kod błędu, kiedy piszę poniższą funkcję:
xcopy /E /Y "http://www.example.com/package.zip"
Wydaje się, że plik wsadowy nie lubi znaku „/” po http. Czy istnieją sposoby na uniknięcie tych znaków, aby nie zakładać, że są to parametry funkcji?
windows
batch-file
download
scripting
James
źródło
źródło
Odpowiedzi:
Z PowerShell 2.0 (preinstalowanym Windows 7) możesz używać:
Począwszy od PowerShell 3.0 (preinstalowany Windows 8), możesz użyć
Invoke-WebRequest
:Z pliku wsadowego są one nazywane:
(PowerShell 2.0 jest dostępny do instalacji w XP, 3.0 dla Windows 7)
źródło
.bat
i.ps1
plików może naprawdę zepsuć twoje rzeczy.Istnieje standardowy składnik systemu Windows, który może osiągnąć to, co próbujesz zrobić: BITS . Został dołączony do systemu Windows od XP i 2000 SP3.
Biegać:
Nazwa zadania to po prostu nazwa wyświetlana zadania pobierania - ustaw ją na coś, co opisuje to, co robisz.
źródło
bitsadmin
nie jest dostępne w Windows XP Home Edition.To może być trochę nie na temat, ale możesz łatwo pobrać plik za pomocą Powershell . Powershell jest dostarczany z nowoczesnymi wersjami systemu Windows, więc nie musisz instalować żadnych dodatkowych rzeczy na komputerze. Nauczyłem się, jak to zrobić, czytając tę stronę:
http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/
Kod był:
źródło
System
wSystem.Net.WebClient
Ostatnio sprawdzałem, nie ma polecenia wiersza poleceń, aby połączyć się z adresem URL z wiersza poleceń MS. Wypróbuj wget dla Windows:
http://gnuwin32.sourceforge.net/packages/wget.htm
lub URL2File:
http://www.chami.com/free/url2file_wincon.html
W Linuksie możesz użyć "wget".
Alternatywnie możesz wypróbować VBScript. Są jak programy wiersza poleceń, ale są to skrypty interpretowane przez hosta skryptów wscript.exe. Oto przykład pobierania pliku za pomocą VBS:
/server/29707/download-file-from-vbscript
źródło
Pobieranie plików w PURE BATCH ...
Bez JScript, VBScript, Powershell itp ... Tylko czysty Batch!
Niektórzy twierdzą, że nie jest możliwe pobieranie plików za pomocą skryptu wsadowego bez użycia języka JScript lub VBScript itp ... Ale zdecydowanie się mylą!
Oto prosta metoda, która wydaje się działać całkiem nieźle w przypadku pobierania plików w skryptach wsadowych. Powinien działać na prawie każdym adresie URL pliku. W razie potrzeby można nawet użyć serwera proxy.
Do pobrania plików możemy użyć BITSADMIN.EXE z systemu Windows. Nie ma potrzeby pobierania / instalowania czegokolwiek ani używania języka JScript lub VBScript itp. Bitsadmin.exe jest obecny w większości wersji systemu Windows, prawdopodobnie od XP do Windows 10.
Cieszyć się!
STOSOWANIE:
Możesz użyć polecenia BITSADMIN bezpośrednio, na przykład:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Serwer proxy:
Aby połączyć się przez serwer proxy, użyj tego polecenia przed pobraniem.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Kliknij to LINK, jeśli chcesz uzyskać więcej informacji na temat BITSadmin.exe
ROZWIĄZYWANIE PROBLEMÓW:
Jeśli pojawi się ten błąd: „Nie można połączyć się z usługą BITS - 0x80070422”
Upewnij się, że usługa systemu Windows „Usługa inteligentnego transferu w tle (BITS)” jest włączona i spróbuj ponownie. (Powinien być domyślnie włączony).
NIESTANDARDOWE FUNKCJE
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Zrobiłem te 3 funkcje dla uproszczenia poleceń bitsadmin. Jest łatwiejszy w użyciu i zapamiętywaniu. Może to być szczególnie przydatne, jeśli używasz go wielokrotnie w swoich skryptach.
PROSZĘ
PAMIĘTAĆ ... Przed użyciem tych funkcji należy najpierw skopiować je z CUSTOM_FUNCTIONS.CMD na koniec skryptu. Jest też kompletny przykład: POBIERZ-PRZYKŁAD.CMD
: DOWNLOAD_FILE "URL"
Główna funkcja pobierze pliki z adresu URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opcjonalnie) Możesz użyć tej funkcji, jeśli musisz użyć serwera proxy.
Wywołanie funkcji: DOWNLOAD_PROXY_OFF wyłączy serwer proxy.
PRZYKŁAD:
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
POBIERZ-PRZYKŁAD.CMD
źródło
następnie
lub po prostu kliknij dwukrotnie, aby przetestować w systemie Windows
źródło
AFAIK, system Windows nie ma wbudowanego narzędzia wiersza poleceń do pobrania pliku. Ale możesz to zrobić z VBScript i możesz wygenerować plik VBScript z partii za pomocą echa i przekierowania wyjścia:
Więcej wyjaśnień tutaj
źródło
Pobierz Wget stąd http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe
Następnie zainstaluj.
Następnie zrób jakiś plik .bat i umieść go w nim
Dostosuj adres URL i ścieżkę do pliku w skrypcie
źródło
Nie możesz używać xcopy zamiast http. Spróbuj pobrać wget dla systemu Windows. To może załatwić sprawę. Jest to narzędzie wiersza poleceń do nieinteraktywnego pobierania plików przez http. Możesz go pobrać pod adresem http://gnuwin32.sourceforge.net/packages/wget.htm
źródło
Jeśli bitsadmin nie jest twoją filiżanką herbaty, możesz użyć tego polecenia PowerShell:
źródło
Użyj konwertera Bat To Exe
Utwórz plik wsadowy i umieść w nim coś podobnego do poniższego kodu
lub
i przekonwertuj go na exe.
źródło
Zamiast wget możesz również użyć aria2, aby pobrać plik z określonego adresu URL.
Zobacz poniższy link, który wyjaśni więcej o aria2:
https://aria2.github.io/
źródło
BATCH może nie być w stanie tego zrobić, ale możesz użyć JScript lub VBScript, jeśli nie chcesz używać narzędzi, które nie są instalowane domyślnie w systemie Windows.
Pierwszy przykład na tej stronie pobiera plik binarny w VBScript: http://www.robvanderwoude.com/vbstech_internet_download.php
Ta odpowiedź SO pobiera plik przy użyciu języka JScript (IMO, lepszy język): Host skryptów systemu Windows (jscript): jak pobrać plik binarny?
Twój skrypt wsadowy może wtedy po prostu wywołać JScript lub VBScript, który pobiera plik.
źródło
To powinno zadziałać. Wykonałem następujące czynności dla projektu serwera gry. Pobierze plik zip i wyodrębni go do dowolnego wskazanego katalogu.
Zapisz jako name.bat lub name.cmd
Oryginał: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver/blob/master/steam.cmd
źródło
Znalazłem ten skrypt VB:
http://www.olafrv.com/?p=385
Działa jak marzenie. Skonfigurowany jako funkcja z bardzo prostym wywołaniem funkcji:
Pochodzi z: http://www.ericphelps.com/scripting/samples/BinaryDownload/index.htm
Oto pełny kod nadmiarowości:
źródło
To pytanie ma bardzo dobrą odpowiedź w tutaj . Mój kod jest oparty wyłącznie na tej odpowiedzi z pewnymi modyfikacjami.
Zapisz poniższy fragment kodu jako wget.bat i umieść go w ścieżce systemowej (np. Umieść go w katalogu i dodaj ten katalog do ścieżki systemowej).
Możesz go użyć w swoim CLI w następujący sposób:
wget url/to/file [?custom_name]
gdzie
url_to_file
jest obowiązkowe icustom_name
opcjonalneAdres URL pliku i zapisane nazwy plików są wyświetlane w kolorze ansi. Jeśli to sprawia Ci problem, sprawdź ten projekt na githubie.
PS Ten kod wymaga zainstalowania programu PowerShell.
źródło
Możesz ustawić zaplanowane zadanie za pomocą wget, użyj pola „Uruchom” w zaplanowanym zadaniu jako:
źródło
W systemie Windows istnieje narzędzie (rezydujące z CMD), które można uruchomić z CMD (jeśli masz uprawnienia do zapisu):
Wbudowana aplikacja Windows. Nie ma potrzeby pobierania zewnętrznych plików.
Testowane na Win 10
źródło
użyj ftp:
Zmień wszystko w gwiazdkach, aby pasowało do Twojej sytuacji.
źródło