Как мне запустить этот код в Windows / на Powershell?

#windows #bash #powershell #unix #wget

#Windows #bash #powershell #unix #wget

Вопрос:

Я пытаюсь загрузить коллекцию файлов, но инструкции относятся к командной строке в Unix. По сути, у меня есть текстовый файл с очень длинным списком команд wget, каждая из которых в значительной степени

 wget -U Mozilla/5.0 --no-check-certificate https://some-url.com
  

с другим URL. В командной строке указано выполнить следующее

 chmod a x filename.txt

Execute: ./filename.txt
  

Однако ничего не работает, потому что я работаю в Windows. Есть ли какой-либо способ загрузить эти файлы из этого .txt-файла или запустить команды wget в Windows? Спасибо!

Комментарии:

1. Рассматривали ли вы возможность поиска в Google для wget для Windows перед публикацией здесь?

2. Вы пытаетесь выполнить это в среде bash для Windows или в дистрибутиве WSL? В любом случае вы хотите, чтобы первая строка в вашем файле была #!/bin/bash для установки интерпретатора, который будет использоваться для остальной части скрипта. Затем вы можете сделать скрипт исполняемым (например, chmod x filename.txt ), а затем запустить его с помощью ./filename.txt . В качестве альтернативы, просто запустите его с помощью bash, (например, bash filename.txt ). (вам нужно будет wget установить в этой среде)

Ответ №1:

Вы можете получить wget для Windows здесь.

В Windows PowerShell wget является псевдонимом для Invoke-WebRequest , который не будет использовать те же параметры, что и «реальный» wget. Однако, как только у вас появится wget.exe для Windows вы могли бы сделать что-то вроде следующего:

 Set-Alias wget wget.exe -Force -Option AllScope # point 'wget' at the real 'wget.exe'

copy ./filename.txt ./filename.ps1
. ./filename.ps1 # <-- "dot source" operator
  

Но если каждая строка в файле действительно является просто командной строкой wget… вы также могли бы просто использовать cmd точно так же.

 copy ./filename.txt ./filename.cmd
cmd.exe /c ./filename.cmd