ฉันจะดาวน์โหลดบางสิ่งจากเว็บได้โดยตรงโดยไม่ต้องเปิด Internet Explorer หรือ Firefox เปิดโปรแกรม Acrobat Reader / Quicktime / MS Word / อะไร?
ฉันใช้ Windows ดังนั้นWgetรุ่น Windows จะทำอย่างไร
ฉันจะดาวน์โหลดบางสิ่งจากเว็บได้โดยตรงโดยไม่ต้องเปิด Internet Explorer หรือ Firefox เปิดโปรแกรม Acrobat Reader / Quicktime / MS Word / อะไร?
ฉันใช้ Windows ดังนั้นWgetรุ่น Windows จะทำอย่างไร
คำตอบ:
Wget สำหรับ Windowsควรใช้งานได้
GNU Wget เป็นยูทิลิตี้เครือข่ายฟรีในการดึงไฟล์จากเวิลด์ไวด์เว็บโดยใช้ HTTP และ FTP ซึ่งเป็นโปรโตคอลอินเทอร์เน็ตที่ใช้กันอย่างแพร่หลายที่สุดสองตัว มันทำงานแบบไม่โต้ตอบซึ่งทำให้สามารถทำงานในพื้นหลังหลังจากออกจากระบบ
จากส่วนของคำถามที่พบบ่อยนี้แนะนำให้ดาวน์โหลดลิงค์:
Windows ไบนารี
ความอนุเคราะห์ของ Jernej Simončič: http://eternallybored.org/misc/wget/
จาก sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm
[ ... ]
ใช้ลิงค์กับมารยาทของ Jernej Simončičแทน
ทางเลือกที่ฉันค้นพบเมื่อเร็ว ๆ นี้โดยใช้ PowerShell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
มันทำงานได้ดีกับคำสั่ง GET
หากคุณต้องการระบุข้อมูลประจำตัวเพื่อดาวน์โหลดไฟล์ให้เพิ่มบรรทัดต่อไปนี้ระหว่าง:
$client.Credentials = Get-Credential
พรอมต์ข้อมูลประจำตัวของ windows มาตรฐานจะปรากฏขึ้น ข้อมูลประจำตัวที่คุณป้อนจะถูกใช้เพื่อดาวน์โหลดไฟล์ คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวตลอดเวลาที่คุณจะใช้วัตถุ $ client
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
หากคุณมี PowerShell> = 3.0 คุณสามารถใช้ Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
หรือตีกอล์ฟ
iwr -outf index.html http://superuser.com
System.Net.WebClient
เมื่อเทียบกับ แต่คุณสามารถทำให้การทำงานโดยการเพิ่มInvoke-WebRequest
-UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
wget
หรือcurl -O
, curl --remote-name
หรือcurl -J
?)
Windows มียูทิลิตี้ดาวน์โหลดบรรทัดคำสั่งของตัวเอง - BITSAdmin :
BITSAdmin เป็นเครื่องมือบรรทัดคำสั่งที่คุณสามารถใช้เพื่อสร้างการดาวน์โหลดหรืออัพโหลดงานและติดตามความคืบหน้าของพวกเขา
แก้ไข : 26.01.15 - นี่คือภาพรวมของฉันของวิธีการดาวน์โหลดไฟล์บน windows โดยไม่ต้องใช้เครื่องมือภายนอก
และตัวอย่าง bitsadmin ที่สมบูรณ์:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip
แก้ไข : 15.05.2018 - เปิดออกที่เป็นไปได้ในการดาวน์โหลดไฟล์ที่มีประกาศนียบัตรเช่นกัน:
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Certutil ไม่ได้ติดตั้งเป็นค่าเริ่มต้นใน XP / Win2003 แต่มีให้ใช้งานบน Windows รุ่นใหม่กว่าสำหรับ XP / 2003 คุณจะต้องใช้ชุดเครื่องมือผู้ดูแลระบบสำหรับ Windows Server 2003
บันทึกข้อความต่อไปนี้เป็นwget.js
และเพียงแค่โทร
cscript /nologo wget.js http://example.com
นี่คือรหัส:
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");
*/
มีม้วนพื้นเมืองสำหรับ Windows ที่มีอยู่ที่นี่ มีหลายรสชาติให้เลือกทั้งแบบมีและไม่มีการรองรับ SSL
คุณไม่ต้องการสัมภาระเพิ่มของCygwinและไลค์ไฟล์ EXE ขนาดเล็กเพียงไฟล์เดียว
สิ่งสำคัญคือต้องรู้ว่ามีทั้งwget
และcurl
นามแฝงที่สร้างขึ้นใน Windows Powershell รุ่นทันสมัยทั้งหมด พวกเขาเทียบเท่า
ไม่จำเป็นต้องใช้ไฟล์หรือดาวน์โหลดเพิ่มเติมเพื่อรับwget
ฟังก์ชั่นการทำงาน:
การใช้ Curl In Powershell (The Sociable Geek)
ข้อความที่ตัดตอนมา:
คุณสามารถพิมพ์คำสั่ง cURL เหมือนที่ดาวน์โหลดไฟล์จากที่เก็บ GitHub
และดูเหมือนว่าจะใช้งานได้ แต่สิ่งที่จริง ๆ แล้วการทำคือใช้ cURL เป็นนามแฝง ในตัวอย่างข้างต้นสิ่งที่จะเกิดขึ้นคือคุณเพิ่งได้รับส่วนหัวแทนที่จะเป็นไฟล์
นามแฝงใน PowerShell ช่วยให้คุณสร้างทางลัดสำหรับคำสั่งที่ยาวกว่าดังนั้นคุณไม่จำเป็นต้องพิมพ์คำสั่งเหล่านั้นออกตลอดเวลา
หากคุณพิมพ์คำสั่ง Get-Alias คำสั่งจะแสดงรายการนามแฝงทั้งหมดที่ใช้ใน PowerShell อย่างที่คุณเห็นคำสั่ง curl จะเรียกคำสั่ง Invoke-WebRequest พวกเขาเหมือนกัน แต่ไม่เหมือนกันซึ่งเป็นสาเหตุที่คำขอข้างต้นไม่ได้ผลสำหรับเรา
เพื่อให้สิ่งนี้ทำงานได้อย่างถูกต้องใน PowerShell วิธีที่ง่ายที่สุดคือการใช้ตัวแปรและ-OutFile
อาร์กิวเมนต์ตามที่แสดงไว้ที่นี่:
(ชื่อไฟล์ถูกตัดในภาพ“ https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json ”)
ไวยากรณ์นี้จะดาวน์โหลดเนื้อหาทั้งหมดของไฟล์เป้าหมายazuredeploy.json
ไปยังไฟล์โลคอลnewfile.json
ข้อได้เปรียบหลักคือมันสร้างไว้ใน Powershell เองดังนั้นโค้ดนี้จะทำงานโดยตรงโดยไม่ต้องดาวน์โหลดหรือต้องมีการสร้างไฟล์เพิ่มเติมอื่น ๆ เพื่อให้มันทำงานบน Windows รุ่นที่ทันสมัย
ฉันสร้างไฟล์ myGet.bat อย่างรวดเร็วซึ่งเรียกเมธอด PowerShell ตามที่อธิบายไว้ข้างต้น
@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
ผมยืมรหัสจากการแยกวิเคราะห์ URL สำหรับชื่อไฟล์ที่มีพื้นที่
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"
<- การใช้งาน PowerShell หนึ่งบรรทัดอย่างง่าย ๆ ในการเข้ารหัสตำแหน่งไฟล์สคริปต์และชื่อไฟล์
ฉันกำลังค้นหาสิ่งเดียวกันและเนื่องจากฉันไม่มีสิทธิ์ติดตั้งแพ็คเกจใด ๆ ข้างต้นฉันจึงหาวิธีแก้ปัญหาเล็ก ๆ (เพื่อดาวน์โหลด 30 + ไฟล์):
firefox.exe
ที่จุดเริ่มต้นของแต่ละบรรทัดProgram Files
หากPowerShellเป็นตัวเลือกนั่นเป็นเส้นทางที่ต้องการเนื่องจากคุณ (อาจ) ไม่ต้องติดตั้งอะไรเพิ่มเติม:
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')
ความล้มเหลวนั้น Wget สำหรับ Windows เนื่องจากคนอื่น ๆ ชี้ให้เห็นว่าเป็นตัวเลือกที่ดีที่สุดที่สองแน่นอน ขณะที่โพสต์ในคำตอบอื่นดูเหมือนว่าคุณสามารถดาวน์โหลด Wget ทั้งหมดด้วยตัวเองหรือคุณสามารถคว้ามันเป็นส่วนหนึ่งของCygwinหรือMSYS
หากด้วยเหตุผลบางอย่างคุณพบว่าตัวเองติดอยู่ในช่วงเวลาที่บิดเบี้ยวโดยใช้เครื่องที่ไม่มี PowerShell และคุณไม่มีสิทธิ์เข้าถึงเว็บเบราว์เซอร์ที่ใช้งานได้ (นั่นคือ Internet Explorer เป็นเบราว์เซอร์เดียวในระบบและการตั้งค่า เสียหาย) และไฟล์ของคุณอยู่บนไซต์ FTP (ตรงข้ามกับ HTTP):
start->run "FTP", press "OK".
หากหน่วยความจำให้บริการอยู่ที่นั่นตั้งแต่ Windows 98 และฉันสามารถยืนยันได้ว่ามันยังคงอยู่ใน Windows 8 RTM (คุณอาจต้องเข้าไปappwiz.cpl
และเพิ่ม / ลบคุณสมบัติเพื่อรับมัน) ยูทิลิตี้นี้สามารถดาวน์โหลดและอัพโหลดไฟล์ไปยัง / จากไซต์ FTP บนเว็บ นอกจากนี้ยังสามารถใช้ในสคริปต์เพื่อดำเนินการทั้งสองแบบอัตโนมัติ
เครื่องมือนี้เป็นเครื่องมือในตัวที่ช่วยชีวิตฉันได้จริงในอดีตโดยเฉพาะอย่างยิ่งในวันที่ ftp.cdrom.com - ฉันดาวน์โหลด Firefox ด้วยวิธีนี้ครั้งเดียวบนเครื่องที่เสียอย่างสมบูรณ์ที่มีอินเทอร์เน็ตผ่านสายโทรศัพท์เท่านั้น การเชื่อมต่อ (ย้อนกลับเมื่อขนาดแพ็คเก็ตสูงสุดของ sneakernet ยังคงเป็น 1.44 MB และ Firefox ยังคงถูกเรียกว่า "Netscape" / me ทำ trollface )
เคล็ดลับสองสามข้อ: เป็นหน่วยประมวลผลคำสั่งของตัวเองและมีไวยากรณ์ของตัวเอง ลองพิมพ์ "ช่วย" ไซต์ FTP ทั้งหมดต้องการชื่อผู้ใช้และรหัสผ่าน แต่ถ้าพวกเขาอนุญาตให้ผู้ใช้ "ไม่ระบุชื่อ" ชื่อผู้ใช้คือ "ไม่ระบุชื่อ" และรหัสผ่านคือที่อยู่อีเมลของคุณ (คุณสามารถสร้างขึ้นหากคุณไม่ต้องการที่จะถูกติดตาม แต่มักจะมีตรรกะบางอย่างเพื่อให้แน่ใจว่า ที่อยู่อีเมลที่ถูกต้อง)
C:\tmp\file.tx??t
Cygwinมี Wget (และสาธารณูปโภคอื่น ๆ อีกมากมาย)
และhttp://www.httrack.com/มี GUI ที่ดี (และฟรี) สำหรับการทำมิเรอร์ไซต์ นอกจากนี้ยังมีรุ่น Linux
คุณสามารถใช้wget
แพ็คเกจใน PowerShellได้ ; ^) เพื่อเปิดกดปุ่ม Windows และพิมพ์ "powershell" หรือ Windows-R และพิมพ์ "powershell" และกดปุ่ม return
ไม่จำเป็นต้องติดตั้ง
ข้อแตกต่างที่น่าสนใจอย่างหนึ่งจากการใช้งานทั่วไปwget
(มากกว่าที่ลิงค์นั้น ): คุณไม่สามารถใช้ไพพ์ยิ่งใหญ่กว่ากับไฟล์ได้ wget
ใน PowerShell เป็นเพียงเครื่องมือห่อหุ้มสิ่งอำนวยความสะดวกสำหรับInvoke-WebRequest
และคุณจำเป็นต้องใช้ไวยากรณ์เพื่อเขียนไปยังไฟล์
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
-OutFile
ทำผลงานได้!
ฉันคิดว่าการติดตั้งwget
ผ่าน Chocolatey เป็นวิธีที่ง่ายที่สุด
choco install wget
wget
จากบรรทัดคำสั่งเช่นบนระบบ * nixหากคุณต้องการ GUI ให้ลองใช้VisualWgetซึ่งสะอาดแล้วและมีคุณสมบัติครบถ้วน มันขึ้นอยู่กับ GNU Wget สำหรับเครื่องมือดาวน์โหลด
แก้ไข: ลิงก์ที่อัปเดต
ดังที่บันทึกไว้ในคำตอบ SUนี้คุณสามารถใช้สิ่งต่อไปนี้ใน Powershell:
Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
หากคุณต้องการโพสต์แบบภาพสำหรับ Windows นี่คือสิ่งที่คุณต้องการ
คุณสามารถโพสต์ข้อมูลหรือไฟล์ด้วย