Net.WebClient.DownloadFile从批处理文件下载Google Drive的文件无法识别某些字符

时间:2018-03-10 18:28:28

标签: powershell batch-file cmd

我正在尝试通过批处理文件并使用Net.WebClient.DownloadFile功能下载托管在Google云端硬盘上的文件,但这无法识别网址上的某些字符。

这是在控制台上收到的错误:

enter image description here

这是我的最后一次尝试:

    @echo off

    SetLocal EnableExtensions EnableDelayedExpansion

    set downloadurl="https://drive.google.com/uc?authuser=0&id=1gCLfIwL2FfswelXIsK6tkWm5kCRSTNh8&export=download"
    set downloadpath=%LOCALAPPDATA%\test.txt

    powershell -command "& { (New-Object Net.WebClient).DownloadFile('%downloadurl%', '%downloadpath%'); }"

    pause

我如何解决?

提前感谢。

1 个答案:

答案 0 :(得分:1)

您的SET语句中的引号由cmd解释,因此它会尝试保持解释并被单引号弄糊涂。改变你的代码:

@ECHO OFF

SET "downloadurl=https://drive.google.com/uc?authuser=0&id=1gCLfIwL2FfswelXIsK6tkWm5kCRSTNh8&export=download"

powershell.exe -Command "Invoke-WebRequest -Uri %downloadurl% -OutFile $Env:LocalAppData\test.txt"

PAUSE