
【已解決】win7電腦用curl批量下載阿里云服務(wù)器圖片的問題最后由 52hz 于 -8-15 09:49向大佬們問好。在阿里云服務(wù)器有一批圖片導(dǎo)出后是表格內(nèi)含圖片鏈接,我整理進list.txt文檔后,用curl去批量下載。bat代碼如下:
list.txt文檔(ANSI)格式如下:CTA4331460010商品圖_1https://rama-prod.oss-cn-guangzh ... -file/CTA4331460010商品圖_HWtN1723184103155.jpg直接運行下載后,圖片是損壞,但圖片名稱正確。把損壞圖片用txt打開后是阿里云服務(wù)器的報錯信息,翻譯后就是:字符編碼必須為utf-8然后我把 list.txt文檔 改成了UTF-8格式,下載后圖片可以正常打開了,但是圖片名稱內(nèi)的中文是亂碼。其實這一步在代碼后用for+ren對圖片重新命名也是可以解決問題,但是我想找出到底哪里原因。所以就繼續(xù)嘗試……為此我在代碼中加入了一行 chcp 65001 >nul,然后下載圖片名稱對了,圖又變回損壞的了。我把鏈接復(fù)制到瀏覽器可以正常打開圖片,再從瀏覽器地址欄復(fù)制下來的時候,鏈接中的中文被重新編譯了,用重新編譯后的鏈接保存UTF-8,代碼中加上chcp 65001 >nul ,至此可以正常運行,圖片本身和圖片名稱都沒問題了?;蛘哂弥匦戮幾g后的鏈接保存ANSI,代碼中不要chcp 65001 >nul 也是可以的。期間也懷疑是curl版本不行,升級到最新版以后也沒變。群里也有大佬說他win11電腦直接用第一次的方案就沒問題。請教大佬們遇到這種鏈接該怎么辦?有沒有更好的解決辦法。nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- rem chcp 65001 >nul
- setlocal enabledelayedexpansion
- if not exist down md down
- for /f tokens=1-2 delims= %%a in (%~dp0list.txt) do (
- curl -s %%b > down%%a.jpg -H User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)
- )
- pause

