标题: [其他] 怎么用批处理下载客户端? [打印本页]
作者: q9339 时间: 2023-4-21 16:12 标题: 怎么用批处理下载客户端?
怎么用批处理脚本下载 网站 https://shop.ele.me/apps/pc/?t=ls-pc 或者 https://shadow.elemecdn.com/crayfish/napos-app-download/lingshou/pc 里的exe文件呢 ?
主要用于每次网站更新客户端的时候, 手动点击更新, 因为 客户端不可以在线更新, 每次更新链接都会有变化, 想通过脚本自动获取最新的下载地址, 实现手动更新。
作者: czjt1234 时间: 2023-4-21 16:33
我试了下,你这个网址好象还要转向,不是最终的下载链接
用最终下载链接的话可以这样- @echo off
- rem 另存为 ANSI 编码
- echo 正在下载,请稍等……
- certutil.exe -urlcache -f https://alsc-rtail-merchant-pc-zbprod-zb1-oss-2.oss-accelerate.aliyuncs.com/electron-ebai-config/eleme-retail-6.0.3-win-ia32-setup.exe aliyuncs_setup.exe
- echo 下载完成
- pause
复制代码
作者: q9339 时间: 2023-4-21 16:35
本帖最后由 q9339 于 2023-4-21 16:36 编辑
我试了下,你这个网址好象还要转向,不是最终的下载链接
用最终下载链接的话可以这样
czjt1234 发表于 2023-4-21 16:33
怎么让脚本自动读取呢 ? 而不是 人为操作 找到链接。。
我发现刚才的链接都是旧的, 用这个链接可以吗?
https://market.m.taobao.com/app/eleme_nr_bfe_retail/eb_download/index.html
作者: czjt1234 时间: 2023-4-21 20:35
获取真实下载链接,这个有点难了,我是不会,你可以发到付费求助区问问
要不你加个收藏夹,或网址的快捷方式,点开网页再点下载
不会比直接批处理下载慢
作者: idwma 时间: 2023-4-21 22:43
大概像这样- powershell "$a=iwr https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download;iwr $a.downloadUrl -outfile ($a.downloadUrl -replace '.+/')"
复制代码
作者: buyiyang 时间: 2023-4-21 22:48
http://www.bathome.net/viewthread.php?tid=62770&highlight=%BB%F9%D3%DA
参考这个操作浏览器,先下好对应的selenium库文件和edge驱动程序- <# :
- cls&@echo off
- set "url=https://market.m.taobao.com/app/eleme_nr_bfe_retail/eb_download/index.html"
- set "de=C:\A\B"
- rem 以上设置网址和下载目录
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%url%','%de%'
- exit
- #>
- using namespace 'OpenQA.Selenium'
- Get-ChildItem '*.dll' | % {[void][System.Reflection.Assembly]::LoadFile($_.FullName)}
- $edge = [Edge.EdgeDriver]::new()
- $edge.Url = $args[0]
- sleep 1
- $href = $edge.FindElement([by]::classname('gray-btn')).GetAttribute('href')
- Write-Host $href
- $edge.Close()
- $edge.Dispose()
- Start-BitsTransfer -Source $href -Destination $args[1]
复制代码
作者: Batcher 时间: 2023-4-22 19:36
回复 5# idwma
你的电脑上用这个方法测试3楼链接能成功么?
作者: idwma 时间: 2023-4-22 19:54
回复 7# Batcher
之前是用F11看的,3楼的链接里是调用这个来获得下载地址的吧
作者: buyiyang 时间: 2023-4-22 22:19
回复 5# idwma
downloadUrl似乎是在Content里的- powershell -c "$downloadUrl = iwr 'https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download' | ConvertFrom-Json | Select-Object -ExpandProperty downloadUrl;iwr $downloadUrl -outfile ($downloadUrl -replace '.+/')"
复制代码
作者: Batcher 时间: 2023-4-23 10:38
回复 8# idwma
不知道是不是我理解有问题,楼主的需求是使用3楼链接下载,不要人为操作找到链接。
作者: idwma 时间: 2023-4-23 15:51
回复 10# Batcher
是我理解错了
作者: q9339 时间: 2023-4-23 16:36
大概像这样
idwma 发表于 2023-4-21 22:43
复制到cmd 运行, 报错。。 如下:
无法将“iwr”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼
写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 7
+ $a=iwr <<<< https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/downloa
d;iwr $a.downloadUrl -outfile ($a.downloadUrl -replace '.+/')
+ CategoryInfo : ObjectNotFound: (iwr:String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
无法将“iwr”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼
写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 77
+ $a=iwr https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download;iwr
<<<< $a.downloadUrl -outfile ($a.downloadUrl -replace '.+/')
+ CategoryInfo : ObjectNotFound: (iwr:String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
作者: q9339 时间: 2023-4-23 16:37
参考这个操作浏览器,先下好对应的selenium库文件和edge驱动程序
buyiyang 发表于 2023-4-21 22:48
不好意思啊, 我这边的 win7 系统, 还有更好的办法吗 ?
作者: q9339 时间: 2023-4-23 16:38
回复 idwma
downloadUrl似乎是在Content里的
buyiyang 发表于 2023-4-22 22:19
运行报错。。。 报错如下:
无法将“iwr”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼
写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 19
+ $downloadUrl = iwr <<<< 'https://nr.ele.me/eleme_nr_bfe_retail/eb_download/c
onfig/download' | ConvertFrom-Json | Select-Object -ExpandProperty downloadUrl;
iwr $downloadUrl -outfile ($downloadUrl -replace '.+/')
+ CategoryInfo : ObjectNotFound: (iwr:String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
无法将“iwr”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼
写,如果包括路径,请确保路径正确,然后重试。
所在位置 行:1 字符: 154
+ $downloadUrl = iwr 'https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/
download' | ConvertFrom-Json | Select-Object -ExpandProperty downloadUrl;iwr <<
<< $downloadUrl -outfile ($downloadUrl -replace '.+/')
+ CategoryInfo : ObjectNotFound: (iwr:String) [], CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
作者: jyswjjgdwtdtj 时间: 2023-4-23 18:24
为什么不用internet.application?起码现在的网页还是支持ie11的吧
作者: idwma 时间: 2023-4-23 18:53
win7试试这个ai给的方法- #@&cls&powershell "type '%~f0'|out-string|iex"&pause&exit
- $wc = New-Object System.Net.WebClient
- $wc.DownloadString('https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download') -match 'http[^"]+'
- $sourceStream = $wc.OpenRead($matches[0])
- $targetStream = new-object System.IO.FileStream(("$pwd\"+($matches[0]-replace'.+/')), [System.IO.FileMode]::Create)
- $gzipStream = new-object System.IO.Compression.GZipStream($sourceStream, [System.IO.Compression.CompressionMode]::Decompress)
-
- $buffer = new-object byte[](1024)
- while($true)
- {
- $read = $gzipStream.Read($buffer, 0, 1024)
- if($read -le 0){ break }
- $targetStream.Write($buffer, 0, $read)
- }
-
- $gzipStream.Close()
- $targetStream.Close()
- $sourceStream.Close()
复制代码
作者: jyswjjgdwtdtj 时间: 2023-4-23 19:06
- set ie=createobject("internetexplorer.application")
- ie.visible=false
- ie.navigate "https://shop.ele.me/apps/pc/?t=ls-pc"
- do until ie.readystate=4
- wscript.sleep 100
- loop
- url=ie.document.getelementsbyclassname("pc-download")(0).getelementsbytagname("a")(0).href
-
- Set http = CreateObject("Msxml2.XMLHTTP")
- Set ado = createobject("Adodb.Stream")
- with http
- .open "GET",url,false
- .send
- ado.Type =1
- ado.Open
- ado.Write .responsebody
- ado.SaveToFile "1.exe"
- ado.Close
- end with
- set ws=createobject("wscript.shell")
- ws.run "1.exe"
复制代码
简单粗暴 不动脑子 直接用浏览器找好吧
作者: jyswjjgdwtdtj 时间: 2023-4-23 19:06
实测可用
绝对好用 速度也不慢
作者: jyswjjgdwtdtj 时间: 2023-4-23 19:12
回复 16# idwma
这个不能用额
作者: idwma 时间: 2023-4-23 21:22
回复 19# jyswjjgdwtdtj
可能不通用吧
作者: q9339 时间: 2023-4-24 15:35
win7试试这个ai给的方法
idwma 发表于 2023-4-23 18:53
这个文件下载 在哪里的啊? 运行了 按了 回车 最后好像 什么都没。。
作者: idwma 时间: 2023-4-24 19:57
回复 21# q9339
下在当前目录,没有就不知道什么原因了
作者: jyswjjgdwtdtj 时间: 2023-4-24 21:22
回复 20# idwma
你不去搞个xp或者2000应该没大问题吧……我也不知道
我在mshta(ie7)试了一下 卡了好久才报错……
作者: q9339 时间: 2023-4-26 14:37
windows下 curl就是一个单文件exe 你放到同级目录里面就可以了
@echo off
setlocal enabledelayedexpansion
curl -k "https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download" -o "elme.txt"
for /f tokens^=16^ delims^=^" %%i in (elme.txt) do bitsadmin /transfer n "%%i" "D:\elme.exe"
del elme.txt
pause
把curl和这个BAT放到同一个目录下运行bat就行
作者: 77七 时间: 2023-4-26 16:07
本帖最后由 77七 于 2023-4-26 16:22 编辑
回复 24# q9339
- @echo off
- for /f tokens^=16delims^=^" %%a in ('curl "https://nr.ele.me/eleme_nr_bfe_retail/eb_download/config/download"') do (
- curl -O "%%a"
- )
- pause
复制代码
作者: mzzyb 时间: 2023-4-26 16:21
为什么不用internet.application?起码现在的网页还是支持ie11的吧
jyswjjgdwtdtj 发表于 2023-4-23 18:24
域服务器更新域成员的客户端好像,不然为什么要求用cmd来写下载更新客户端,只是1台电脑,点几下都完成了~~~
作者: jyswjjgdwtdtj 时间: 2023-4-26 16:57
回复 26# mzzyb
ie支持自动化
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |