Làm cách nào tôi có thể tải xuống một cái gì đó từ web trực tiếp mà không cần Internet Explorer hoặc Firefox mở Acrobat Reader / Quicktime / MS Word / bất cứ điều gì?
Tôi đang sử dụng Windows, vì vậy phiên bản Windows của Wget sẽ làm.
Làm cách nào tôi có thể tải xuống một cái gì đó từ web trực tiếp mà không cần Internet Explorer hoặc Firefox mở Acrobat Reader / Quicktime / MS Word / bất cứ điều gì?
Tôi đang sử dụng Windows, vì vậy phiên bản Windows của Wget sẽ làm.
Câu trả lời:
Wget cho Windows sẽ hoạt động.
Từ Wget Wiki FAQ :
GNU Wget là một tiện ích mạng miễn phí để truy xuất các tệp từ World Wide Web bằng HTTP và FTP, hai giao thức Internet được sử dụng rộng rãi nhất. Nó hoạt động không tương tác, do đó cho phép làm việc trong nền, sau khi đã đăng xuất.
Từ phần FAQ này , các liên kết tải xuống được đề xuất:
Hệ nhị phân Windows
lịch sự của Jernej Simončič: http://eternallybored.org/misc/wget/
từ sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm
[...]
Liên kết với phép lịch sự của Jernej Simončič được sử dụng thay thế.
Một thay thế tôi đã phát hiện ra gần đây, sử dụng PowerShell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
Nó hoạt động tốt với các truy vấn GET.
Nếu bạn cần chỉ định thông tin đăng nhập để tải xuống tệp, hãy thêm dòng sau vào giữa:
$client.Credentials = Get-Credential
Một dấu nhắc thông tin cửa sổ tiêu chuẩn sẽ bật lên. Thông tin đăng nhập bạn nhập vào sẽ được sử dụng để tải xuống tệp. Bạn chỉ cần làm điều này một lần cho tất cả thời gian bạn sẽ sử dụng đối tượng $ client.
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
Nếu bạn có PowerShell> = 3.0, bạn có thể sử dụng Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
Hoặc chơi gôn
iwr -outf index.html http://superuser.com
System.Net.WebClient
. Tuy nhiên, bạn có thể làm cho Invoke-WebRequest
công việc bằng cách thêm -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
.
wget
hoặc curl -O
, curl --remote-name
hoặc curl -J
?)
Windows có tiện ích tải xuống dòng lệnh riêng - BITSAdmin :
BITSAdmin là một công cụ dòng lệnh mà bạn có thể sử dụng để tạo các công việc tải xuống hoặc tải lên và theo dõi tiến trình của chúng.
EDIT : 26.01.15 - Đây là tổng quan của tôi về cách tải xuống tệp trên windows mà không cần các công cụ bên ngoài
Và một ví dụ bitadmin hoàn chỉnh:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip
Chỉnh sửa : 15.05.2018 - hóa ra cũng có thể tải xuống một tệp với certutil :
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Certutil không được cài đặt theo mặc định trên XP / Win2003 nhưng có sẵn trên các phiên bản Windows mới hơn. Đối với XP / 2003, bạn sẽ cần Gói công cụ quản trị cho máy chủ windows 2003
Lưu văn bản sau dưới dạng wget.js
và chỉ cần gọi
cscript /nologo wget.js http://example.com
Đây là mã:
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);
/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
Có một cURL riêng cho Windows có sẵn ở đây . Có nhiều hương vị có sẵn - có và không có hỗ trợ SSL.
Bạn không cần thêm hành lý của Cygwin và những thứ tương tự, chỉ cần một tệp EXE nhỏ.
Điều quan trọng cần biết là có cả hai wget
và curl
bí danh được tích hợp trong tất cả các phiên bản hiện đại của Windows Powershell. Chúng là tương đương.
Không có tệp hoặc tải xuống bổ sung được yêu cầu để có được wget
chức năng:
Sử dụng Curl In Powershell (The Socible Geek)
Trích đoạn:
Bạn có thể nhập lệnh cURL giống như lệnh tải tệp xuống từ kho GitHub.
và có vẻ như nó hoạt động nhưng những gì nó thực sự đang làm chỉ là sử dụng cURL như một bí danh. Trong trường hợp trên, điều sẽ xảy ra là bạn sẽ chỉ nhận được các tiêu đề thay vì chính tệp đó.
Bí danh trong PowerShell cho phép bạn tạo các phím tắt cho các lệnh dài hơn để bạn không phải gõ chúng ra mọi lúc.
Nếu bạn gõ lệnh Get-Alias, nó sẽ cung cấp cho bạn một danh sách tất cả các Bí danh được sử dụng trong PowerShell. Như bạn có thể thấy, lệnh curl chỉ gọi lệnh Invoke-WebRequest. Chúng tương tự nhau nhưng không giống nhau, đó là lý do tại sao yêu cầu trên không phù hợp với chúng tôi.
Để làm cho điều này hoạt động chính xác trong PowerShell, cách dễ nhất là sử dụng các biến và -OutFile
đối số như được hiển thị ở đây:
(tên file cắt đứt trong hình ảnh “ https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json ”)
Cú pháp này sẽ tải xuống toàn bộ nội dung của tệp đích vào tệp azuredeploy.json
cục bộnewfile.json
Ưu điểm chính là nó được tích hợp vào chính Powershell nên mã này sẽ thực thi trực tiếp mà không cần tải xuống hoặc bất kỳ sáng tạo tệp bổ sung nào được yêu cầu để làm cho nó hoạt động trên mọi phiên bản Windows hiện đại.
Tôi đã tạo một tệp myGet.bat nhanh chóng gọi phương thức PowerShell được mô tả ở trên.
@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP
Tôi đã mượn một số mã từ phân tích cú pháp URL cho tên tệp có khoảng trắng .
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"
<- Việc sử dụng quyền hạn một dòng đơn giản trong tệp tập lệnh vị trí mã hóa cứng và tên tệp.
Nếu PowerShell là một tùy chọn, đó là tuyến ưa thích, vì bạn (có khả năng) sẽ không phải cài đặt thêm bất cứ thứ gì:
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')
Thất bại trong việc đó, Wget cho Windows, như những người khác đã chỉ ra chắc chắn là lựa chọn tốt thứ hai. Như được đăng trong một câu trả lời khác, có vẻ như bạn có thể tự tải xuống Wget hoặc bạn có thể lấy nó như một phần của Cygwin hoặc MSys .
Nếu vì một lý do nào đó, bạn thấy mình bị mắc kẹt trong một khoảng thời gian, sử dụng máy không có PowerShell và bạn không có quyền truy cập vào trình duyệt web đang hoạt động (nghĩa là Internet Explorer là trình duyệt duy nhất trên hệ thống và cài đặt của nó bị hỏng) và tệp của bạn nằm trên một trang FTP (trái ngược với HTTP):
start->run "FTP", press "OK".
Nếu bộ nhớ phục vụ nó đã có từ Windows 98 và tôi có thể xác nhận rằng nó vẫn còn trong Windows 8 RTM (bạn có thể phải truy cập appwiz.cpl
và thêm / xóa các tính năng để có được nó). Tiện ích này có thể tải xuống và tải tệp lên / từ các trang FTP trên web. Nó cũng có thể được sử dụng trong các tập lệnh để tự động hóa hoạt động.
Công cụ này được tích hợp sẵn là công cụ tiết kiệm thực tế đối với tôi trong quá khứ, đặc biệt là vào thời của ftp.cdrom.com - Tôi đã tải xuống Firefox theo cách đó một lần, trên một máy bị hỏng hoàn toàn chỉ có Internet quay số kết nối (trở lại khi kích thước gói tối đa của sneakernet vẫn là 1,44 MB và Firefox vẫn được gọi là "Netscape" / tôi không trollface ).
Một vài lời khuyên: đó là bộ xử lý lệnh của riêng nó và nó có cú pháp riêng. Hãy thử gõ "trợ giúp". Tất cả các trang FTP yêu cầu tên người dùng và mật khẩu; nhưng nếu họ cho phép người dùng "ẩn danh", tên người dùng là "ẩn danh" và mật khẩu là địa chỉ email của bạn (bạn có thể tạo một địa chỉ nếu bạn không muốn bị theo dõi, nhưng thường có một số logic để đảm bảo rằng đó là logic một địa chỉ email hợp lệ).
C:\tmp\file.tx??t
Cygwin có Wget (và nhiều tiện ích khác).
Và http://www.httrack.com/ có GUI đẹp (và miễn phí), để phản chiếu các trang web. Nó cũng có phiên bản Linux.
Bạn cũng có thể sử dụng wget
gói được đóng gói trong PowerShell . ; ^) Để mở, nhấn phím Windows và nhập "powershell" hoặc Windows-R và gõ "powershell" và nhấn return.
Không cần cài đặt.
Một điểm khác biệt thú vị so với thông thường wget
(nhiều hơn ở liên kết đó ): Bạn không thể đơn giản sử dụng lớn hơn so với đường ống vào một tệp. wget
trong PowerShell chỉ là một trình bao bọc tiện lợi Invoke-WebRequest
và bạn cần sử dụng cú pháp của nó để ghi vào một tệp.
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
-OutFile
đã làm công việc!
Tôi nghĩ cài đặt wget
qua Chocolatey là cách dễ nhất.
choco install wget
wget
từ dòng lệnh như trên các hệ thống * nix.Tìm kiếm /download
chức năng trên https://lolbas-project.github.io .
Ngay bây giờ có Bitsadmin.exe
, Certutil.exe
, Esentutl.exe
, Expand.exe, Extrac32.exe
, Findstr.exe
, Hh.exe
, Ieexec.exe
, Makecab.exe
, Replace.exe
dành cho Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 và các phiên bản máy chủ tương đương.
Nếu bạn muốn có GUI, hãy thử VisualWget , thực sự sạch và tính năng đầy đủ. Nó dựa trên GNU Wget cho công cụ tải xuống của nó.
EDIT: liên kết cập nhật.
Như tài liệu trong câu trả lời SU này , bạn có thể sử dụng như sau trong Powershell:
Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
Nếu bạn cần một bài viết trực quan cho Windows, đây là một.
Bạn có thể đăng dữ liệu hoặc tập tin với nó.