Попытка конвертировать скрипт curl из Linux в Windows, чтобы можно было загружать большие файлы с Google Диска - PullRequest
0 голосов
/ 22 апреля 2019

Я нашел этот код, который работает в Linux:

#!/bin/bash
fileid="FILEIDENTIFIER"
filename="FILENAME"
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}

Источник: wget / curl большой файл с Google Drive

Проблема в том, что awk необходимо заменить для реализации Windows.

Я нашел способ сделать это вместо:

command | awk '{ print $4 }'

сделать что-то вроде:

for /f "tokens=4" %%a in ('command') do echo %%a

Моя проблема в том, что я не знаком с awk и переменной NF. Поэтому я не знаю, как конвертировать $ NF в пакетной реализации, чтобы сделать то же самое.

Я нашел решение. FINDSTR сделал свое дело. Так что теперь он отлично работает с:

for /f "tokens=7" %%a in ('findstr "download" cookie.txt') do echo %%a

1 Ответ

0 голосов
/ 22 апреля 2019

Код для ответа на этот вопрос для полнофункционального скрипта для загрузки больших файлов Google Drive с помощью curl в пакетном скрипте в Windows:

curl -c cookie.txt -s -L "https://drive.google.com/uc?export=download&id=FILE_ID" > nul
for /f "tokens=7" %%a in ('findstr "download" cookie.txt') do curl -Lb cookie.txt "https://drive.google.com/uc?export=download&confirm=%%a&id=YOUR_FILE_ID" -o FILENAME

Просто замените FILE_ID вашим идентификатором файла на Google Диске, а FILENAME на желаемое имя выходного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...