我是批量新手,我需要從 url 中獲取標簽,例如:
tag_namein urlhttps://api.github.com/repos/pmmp/PocketMine-MP/releases/latest
所以我發現有人這樣做是為了獲取它:
for /f "tokens=1,* delims=:" %%A in ('curl -ks https://api.github.com/repos/pmmp/PocketMine-MP/releases/latest ^| find "tag_name"') do (
SET VERSION=%%B
echo %VERSION%
)
但是有兩個問題:
- 這是回圈。沒有更好的獲取方式嗎?
- 它回傳
"4.2.4",需要洗掉哪些多余的字符,(顯然我需要像4.2.4
謝謝大家。
uj5u.com熱心網友回復:
在處理一種語言時,使用能夠理解該語言的工具通常是一個好主意。如果您在受支持的windows系統上,powershell.exe則可用,只要findstr.exe可用。
powershell.exe -NoLogo -NoProfile -Command ^
"(& curl.exe -ks https://api.github.com/repos/pmmp/PocketMine-MP/releases/latest | ConvertFrom-Json).tag_name"
要將其放入 abatch-file中,您可以使用:
FOR /F "delims=" %%A IN ('powershell.exe -NoLogo -NoProfile -Command ^
"(& curl.exe -ks https://api.github.com/repos/pmmp/PocketMine-MP/releases/latest | ConvertFrom-Json).tag_name"') DO (SET "TAG_NAME=%%~A")
ECHO TAG_NAME is set to %TAG_NAME%
uj5u.com熱心網友回復:
這是一個選項:
@For /F Tokens^=4^ Delims^=^" %%G In ('%SystemRoot%\System32\curl.exe -ks
"https://api.github.com/repos/pmmp/PocketMine-MP/releases/latest" ^|
%SystemRoot%\System32\findstr.exe /IR "\"tag_name\":" 2^>NUL') Do @Echo(%%G
您當然可以使用自己的代碼并通過閱讀您正在使用的命令的使用資訊來修復它。您可以通過打開命令提示符視窗、鍵入for /?并按下ENTER鍵來做到這一點。只需更改您的分隔符以包含額外的空格和逗號字符,并修改您的變數擴展以使用波浪號,應該適合您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/449367.html
