2016-12-06 5 views
1

Я пытаюсь загрузить файл с помощью Wget (винда командной строки порта), и я получаю эту ошибку ..окна Wget не скачивая файл, но делает в браузере

--2016-12-06 12:36:11-- https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv064BIT/SQLEXPRADV_x64_ENU.exe 
Resolving download.microsoft.com (download.microsoft.com)... 23.209.210.127 
Connecting to download.microsoft.com (download.microsoft.com)|23.209.210.127|:443... connected. 
HTTP request sent, awaiting response... 404 Not Found 
2016-12-06 12:36:12 ERROR 404: Not Found. 

Другие файлы загрузить нормально, используя один и тот же команда ...

здесь является то, что я пытался

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate "https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%2064BIT/SQLEXPRADV_x64_ENU.exe" -P C:\Temp 

ой ..

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%2064BIT/SQLEXPRADV_x64_ENU.exe -P C:\Temp 

Я надеялся, что это проблема с котировками, связанная с% в ссылке, но не повезло. Я также пробовал одиночные кавычки и помещал \ infront из%, чтобы избежать символа.

Всегда такая же ошибка. Интересно, есть ли ограничение на стороне сервера на запрос wget на этом сайте. Могу ли я обойти его? Может быть, мне нужны другие ключи? Заранее спасибо.

+1

FWIW Wget https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%2064BIT/SQLEXPRADV_x64_ENU.exe»работает для меня на Linux с escpaed space – user993553

+0

Могу ли я увидеть ваш код на всякий случай, если он вызывает что-то, ta – Tika9o9

+2

Вы используете это из пакетного файла? Обе ваши команды работают для меня (в Windows). – zb226

ответ

2

Ваши команды работают, когда просто запустить из cmd, но так как вы используете это из пакетного файла, вам нужно бежать знак процента, удваивая его, а именно: %%%

Это дает:

"%~dp0wget" -c --show-progress --progress=bar:force:noscroll --no-check-certificate "https://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAdv%%2064BIT/SQLEXPRADV_x64_ENU.exe" -P C:\Temp 

цитирую ss64.com:

Многие символы, такие как \ =() не должны быть эс caped, когда они используются в «цитируемой строке», как правило, это символы, которые вы могли бы найти в имени файла/пути. Процентный символ - это одно из исключений для этого правила, хотя под NTFS% является допустимым символом имени файла.