Şarap: CMD'den bir dosya nasıl indirilir?


1

İnsanların temelde bütünü nasıl getirdiğine benzer bash Windows ortamına çeşitli nedenlerle oynamak ve oynamak bash orada, çok küçük ölçekte benzer bir şey yapmak isterdim. Orada fark ettim cmd.exe, başlatmama izin veriyor .bat Dosyalar. Yolumda duran tek bir aksaklık var (toplu iş bash'tan çok daha basittir) ve bu da internete erişim sağlıyor.

Açıkçası, Win üzerinde bazı C kodları derleyebilir ve bir dosyayı indirmek için kopyalayabilirim (şaraptan mümkün olmalı), ama kullanmak istiyorum sistemde zaten mevcut olan araçlar . Peki ben ne yapamaz var:

  • bitsadmin.exe
  • powershell

Neyim var:

  • wine-1.6.2
  • bütün bash ortamı (işe yararsa wget yeterli olacaktır)
  • Şarap en iexplore.exe
  • Şarap en cscript.exe

Ne denedim:

  • set PATH=%PATH%;Z:\usr\bin && wget bir komutu tanıyamıyorum wget, görünüşe göre böyle ikilileri bu şekilde kullanamıyorum. dir Z:\usr\bin iyi çalışıyor
  • bitsadmin ve powershell, eksik
  • iexplore.exe, komut satırı desteği yok

Ben de den VBS denedim bu cevap, ama şaşırtıcı bir şekilde, bir tür ayrıştırma hatası veriyor, ki bu "Belirtilmemiş Hata" , bu bir tür izin hatasıdır:

Z:\home\hop>cscript test.vbs
Z:\home\hop>fixme:cscript:wWinMain (0x7ed90000 (nil) L"test.vbs" 1) forwarding t
o wscript
fixme:vbscript:VBScript_SetScriptState unimplemented SCRIPTSTATE_INITIALIZED
fixme:vbscript:parse_script parser failed around L"nt\r\n\r\nwith bStrm\r\n\t.ty
pe = 1......
fixme:wscript:run_script ParseScriptText failed: 80004005

Ama nedense wscript ve cscript boş görünüyor:

cscript /?
Z:\home\hop>fixme:cscript:wWinMain (0x7ed90000) (nil) L"/?" 1) forwarding to wscript

wscript /?
^ outputs nothing, just an empty newline

Windows'da olanlar konsolda bir şey veya bir şey ile yeni bir pencere çıktısı. En azından bekleniyor cscript çalışmak.

Yani ... nasıl indirileceğine dair herhangi bir fikir ( herhangi ) dosyasından wine cmd GNU / Linux ortamındaki ortam, konsol üzerinden dağıtıyor (tıklama yok veya tarayıcıdan manuel olarak indiriliyor)?


cygwin, windows için wget, curl, diğer unix araçları sağlar. Cygwin'i şaraba yerleştirmeyi düşündün mü?
quixotic

@quixotic Eh, bu hala en son seçenek olarak kalır ki belki çalışmak, ama daha çok sadece bir şeyleri özlediğim için daha aklı başında bir yol görmeyi tercih ederim.
KeyWeeUsr

@KeyWeeUsr Bunu yorumlarda yayınlarım, çünkü sisteminizde güç kaynağınızın olmadığını fark etmişsinizdir, ancak yine de bu diğer üyelere yardımcı olabilir ve onlara yeni fikirler verebilir. Toplu iş dosyasından bir dosya indirin
Hackoo

Yanıtlar:


0

İşte bir Hibrit komut dosyası [Toplu / VBScript] bir dosyayı indirmek için!

@echo off
mode con:cols=90 lines=10
title -==*==- Batch File Downloader -==*==-
(
echo Option Explicit
echo.
echo Dim Message, result
echo Dim Title, Text1, Text2
echo.
echo Message = "Type the URL of the file to download http://www.kcc.edu/campaigns/PublishingImages/poh.jpg"
echo Title = "Type the URL of the file to download"
echo Text1 = "You canceled"
echo.
echo result = InputBox^(Message, Title, "http://www.kcc.edu/campaigns/PublishingImages/poh.jpg", 900, 900^)
echo.
echo.
echo If result = "" Then
echo    WScript.Echo Text1
echo Else
echo    WScript.Echo result
echo End If
)>"%tmp%\inputbox.vbs"
for /f "tokens=* delims=*" %%a in ('Cscript "%tmp%\inputbox.vbs" //nologo') do (set "a=%%a")
(
echo path = "%A%"
echo pos = InStrRev(path, "/"^) +1
echo Const DownloadDest = "%A%"
echo LocalFile = Mid(path, pos^)
echo Const webUser = "admin"
echo Const webPass = "admin"
echo Const DownloadType = "binary"
echo dim strURL
echo.
echo function getit(^)
echo  dim xmlhttp
echo.
echo  set xmlhttp=createobject("MSXML2.XMLHTTP.3.0"^)
echo  'xmlhttp.SetOption 2, 13056 'If https -^) Ignore all SSL errors
echo  strURL = DownloadDest
echo  Wscript.Echo "Download-URL: " ^& strURL
echo.
echo  'For basic authentication, use the list below, plus user variables? Give Way
echo  xmlhttp.Open "GET", strURL, false, WebUser, WebPass
echo  'xmlhttp.Open "GET", strURL, false
echo.
echo  xmlhttp.Send
echo  Wscript.Echo "Download-Status: " ^& xmlhttp.Status ^& " " ^& xmlhttp.statusText
echo.
echo  If xmlhttp.Status = 200 Then
echo    Dim objStream
echo    set objStream = CreateObject("ADODB.Stream"^)
echo    objStream.Type = 1 'adTypeBinary
echo    objStream.Open
echo    objStream.Write xmlhttp.responseBody
echo    objStream.SaveToFile LocalFile , 2 '//overwrite
echo    objStream.Close
echo    set objStream = Nothing
echo  End If
echo.
echo.
echo  set xmlhttp=Nothing
echo End function
echo.
echo getit(^)
echo Wscript.Echo "Download complete. Check " ^& LocalFile ^& " for Success."
echo Wscript.Quit(intOK^)
)>"%tmp%\httpdownload.vbs"
::Start
echo(
echo  Please wait ... Download file is in progress ...
for /f "tokens=* delims=*" %%a in ('Cscript "%tmp%\httpdownload.vbs" //nologo') do (echo "%%a")
Del %tmp%\httpdownload.vbs
::End
pause>nul

Ne yazık ki, bu Şarap'ta işe yaramıyor, tıpkı benim sorduğum bağlantılı cevabı, yani kullandığım gibi (etrafta gereksiz şeylerle) aynı şey. İşe yaramıyor çünkü Wine'ın bazı problemleri var. adodb çalışması gereken gerekli kütüphaneleri kurduktan sonra bile.
KeyWeeUsr

0

#Winehq IRC kanalı (freenode) üzerindeki insanlar beni docs ve küçük bir sarıcı yaptım /usr/bin/wget kullanılabilir ve bunun yerine kullanılabilir bitsadmin.exe GNU / Linux ortamında.

Sözdizimi: wget.exe switch task_name url filename, bitsadmin'deki gibi:

bitsadmin / transfer "Görev Adı" " https: //xyz.blob/file.ext "" myfile.ext "

wget.exe :

#!/bin/bash
wget -O $4 $3

Bundan sonra dosyayı yapmak zorunda yürütülebilir ( chmod +x wget.exe ) hemen hemen kullanıcının etkileşimini gerektiren tek adım budur (eğer yapabilseydin çok iyi olurdu) chmod sessizce) ondan sonra mutlu bir şekilde kullanabilirsiniz /usr/bin/wget bunun gibi:

wine cmd /c wget.exe /transfer "Task Name" "https://xyz.blob/file.ext" "myfile.ext"

Not: Şaka, Wine'ın çalıştırmak için Windows tarafından çalıştırılabilir bir dosya gerektirmemesidir, bu nedenle çalıştırılabilir olarak ayarlanmışsa ve bash'a erişebiliyorsanız nasıl devam edeceğinizi bilirseniz bu şekilde bash betiğini çalıştırabilir. .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.