Windows 批处理文件请求管理员权限并在 curl 中下载文件失败
Windows batchfile asking for admin rights and download a file in curl fails
我有一个这样的批处理文件
@echo off
::::::::::::::::::::::::::::::::::::::::::::
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo For Each strArg in WScript.Arguments >> "%temp%\getadmin.vbs"
echo If strArg = WScript.Arguments.Item^(0^) Then d = Left^(strArg, InStrRev^(strArg,"\"^) - 1^) >> "%temp%\getadmin.vbs"
echo args = args ^& " " ^& strArg >> "%temp%\getadmin.vbs"
echo Next >> "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", ^("/c start /D """ ^& d ^& """ /B" ^& args ^& " ^& exit"^), , "runas", 4 >> "%temp%\getadmin.vbs"
cscript "%temp%\getadmin.vbs" ""%~s0"" %*
del /q "%temp%\getadmin.vbs"
exit /b
:gotPrivileges
:: Your code here
echo "Downloading old version of OrthoSelect..."
curl -o ./6.7.5.zip "https://github.com/ruellm/OrthoSelect_6.7.5/archive/refs/tags/6.7.5.zip"
pause
它要求管理员权限并执行curl下载文件,但不幸的是,即使给了管理员权限,下载的zip文件也只有1Kb,没有正确下载整个zip文件,
控制台 window 也不显示错误。
任何人都可以帮助解决问题吗?
指向 Github 上文件的链接不是直接链接,因此如果您尝试简单地 curl
文件,您最终只会下载重定向页面。如果您使用文本编辑器打开您下载的文件,您将看到
<html><body>You are being <a href="https://codeload.github.com/ruellm/OrthoSelect_6.7.5/zip/refs/tags/6.7.5">redirected</a>.</body></html>
这应该告诉您需要使用 -L
标志来跟随重定向:
curl -L "https://github.com/ruellm/OrthoSelect_6.7.5/archive/refs/tags/6.7.5.zip" -o 6.7.5.zip
我有一个这样的批处理文件
@echo off
::::::::::::::::::::::::::::::::::::::::::::
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo For Each strArg in WScript.Arguments >> "%temp%\getadmin.vbs"
echo If strArg = WScript.Arguments.Item^(0^) Then d = Left^(strArg, InStrRev^(strArg,"\"^) - 1^) >> "%temp%\getadmin.vbs"
echo args = args ^& " " ^& strArg >> "%temp%\getadmin.vbs"
echo Next >> "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", ^("/c start /D """ ^& d ^& """ /B" ^& args ^& " ^& exit"^), , "runas", 4 >> "%temp%\getadmin.vbs"
cscript "%temp%\getadmin.vbs" ""%~s0"" %*
del /q "%temp%\getadmin.vbs"
exit /b
:gotPrivileges
:: Your code here
echo "Downloading old version of OrthoSelect..."
curl -o ./6.7.5.zip "https://github.com/ruellm/OrthoSelect_6.7.5/archive/refs/tags/6.7.5.zip"
pause
它要求管理员权限并执行curl下载文件,但不幸的是,即使给了管理员权限,下载的zip文件也只有1Kb,没有正确下载整个zip文件, 控制台 window 也不显示错误。
任何人都可以帮助解决问题吗?
指向 Github 上文件的链接不是直接链接,因此如果您尝试简单地 curl
文件,您最终只会下载重定向页面。如果您使用文本编辑器打开您下载的文件,您将看到
<html><body>You are being <a href="https://codeload.github.com/ruellm/OrthoSelect_6.7.5/zip/refs/tags/6.7.5">redirected</a>.</body></html>
这应该告诉您需要使用 -L
标志来跟随重定向:
curl -L "https://github.com/ruellm/OrthoSelect_6.7.5/archive/refs/tags/6.7.5.zip" -o 6.7.5.zip