скрипт скачивание.

Скрипт скачивание и удаление файл и в процентах скачивание через .bat
Привет! Для скачивания и удаления файлов в .bat файле можно использовать команды curl и del соответственно. Для отслеживания процента скачивания можно использовать утилиту wget.

Ниже приведен пример скрипта, который скачивает файл с заданного URL, отслеживает процент скачивания и удаляет файл после скачивания:

Код:
@echo off

setlocal EnableDelayedExpansion

set "url=https://example.com/file.zip"
set "filename=file.zip"

curl -o %filename% %url% > nul 2>&1 &

set /a count=0

:loop
  timeout /t 1 > nul
  for /f "tokens=2,3,4 delims=:.," %%a in ('wget --progress=bar:force:noscroll -O NUL %url% 2^>^&1 ^| findstr /r /c:"\.\.\."') do (
    set /a "percent=%%a"
    if !percent! GTR !count! (
      set /a count=!percent!
      echo !count!%% downloaded
    )
  )
  tasklist /fi "imagename eq curl.exe" | find /i "curl.exe" > nul && goto loop

del %filename%

echo File deleted

В этом скрипте мы используем команду curl для скачивания файла с заданного URL и сохраняем его в файл с именем filename. Затем мы используем утилиту wget для отслеживания процента скачивания и выводим его в консоль. После завершения скачивания мы удаляем файл с помощью команды del.

Надеюсь, это поможет тебе! Если у тебя есть какие-либо вопросы, не стесняйся задавать их мне.
 
Сначала удалить старый файл , потом закачать новый файл и процент закачки через .bat.
Конечно, вот пример скрипта, который удаляет старый файл, скачивает новый файл и отслеживает процент скачивания:

Код:
@echo off

setlocal EnableDelayedExpansion

set "url=https://example.com/newfile.zip"
set "filename=newfile.zip"
set "oldfilename=oldfile.zip"

if exist %oldfilename% (
  del %oldfilename%
  echo Old file deleted
)

curl -o %filename% %url% > nul 2>&1 &

set /a count=0

:loop
  timeout /t 1 > nul
  for /f "tokens=2,3,4 delims=:.," %%a in ('wget --progress=bar:force:noscroll -O NUL %url% 2^>^&1 ^| findstr /r /c:"\.\.\."') do (
    set /a "percent=%%a"
    if !percent! GTR !count! (
      set /a count=!percent!
      echo !count!%% downloaded
    )
  )
  tasklist /fi "imagename eq curl.exe" | find /i "curl.exe" > nul && goto loop

echo New file downloaded

В этом скрипте мы сначала проверяем, существует ли старый файл oldfilename, и если да, то удаляем его с помощью команды del. Затем мы используем команду curl для скачивания нового файла с заданного URL и сохраняем его в файл с именем filename. Затем мы используем утилиту wget для отслеживания процента скачивания и выводим его в консоль. После завершения скачивания мы выводим сообщение о том, что новый файл был загружен.

Надеюсь, это поможет! Если у тебя есть какие-либо вопросы, не стесняйся задавать их мне.
 
Сначала удалить старый файл , потом закачать с помощью wget.exe новый файл и процент закачки через .bat , почему то командная строка не отображает в процентах.
 
Сначала удалить старый файл , потом закачать с помощью wget.exe новый файл и процент закачки через .bat , почему то командная строка не отображает в процентах.
Конечно, вот пример скрипта, который удаляет старый файл, скачивает новый файл с помощью wget.exe и отслеживает процент скачивания:

Код:
@echo off

setlocal EnableDelayedExpansion

set "url=https://example.com/newfile.zip"
set "filename=newfile.zip"
set "oldfilename=oldfile.zip"

if exist %oldfilename% (
  del %oldfilename%
  echo Old file deleted
)

wget -q --show-progress %url% -O %filename%

echo New file downloaded

В этом скрипте мы сначала проверяем, существует ли старый файл oldfilename, и если да, то удаляем его с помощью команды del. Затем мы используем утилиту wget.exe для скачивания нового файла с заданного URL и сохраняем его в файл с именем filename. Мы также используем опцию -q, чтобы скрыть вывод команды wget, и опцию --show-progress, чтобы отображать процент скачивания.

Надеюсь, это поможет! Если у тебя есть какие-либо вопросы, не стесняйся задавать их мне.
 
Это не работает в процентах , может есть алтернативный?
Если команда wget не отображает процент скачивания в консоли, то можно воспользоваться утилитой bitsadmin, которая доступна в Windows. Вот пример скрипта, который удаляет старый файл, скачивает новый файл с помощью bitsadmin.exe и отслеживает процент скачивания:

Код:
@echo off

setlocal EnableDelayedExpansion

set "url=https://example.com/newfile.zip"
set "filename=newfile.zip"
set "oldfilename=oldfile.zip"

if exist %oldfilename% (
  del %oldfilename%
  echo Old file deleted
)

bitsadmin /transfer "Downloading" %url% %filename% > nul

set /a count=0

:loop
  timeout /t 1 > nul
  for /f "tokens=2,3,4 delims=:.," %%a in ('bitsadmin /info "Downloading" ^| findstr /i /c:"progress:"') do (
    set /a "percent=%%a"
    if !percent! GTR !count! (
      set /a count=!percent!
      echo !count!%% downloaded
    )
  )
  bitsadmin /info "Downloading" | find /i "transferred: 100%" > nul || goto loop

echo New file downloaded

В этом скрипте мы сначала проверяем, существует ли старый файл oldfilename, и если да, то удаляем его с помощью команды del. Затем мы используем утилиту bitsadmin.exe для скачивания нового файла с заданного URL и сохраняем его в файл с именем filename. Мы также используем команду timeout, чтобы задержать выполнение скрипта на 1 секунду, и цикл :loop, чтобы отслеживать процент скачивания. В конце мы выводим сообщение о том, что новый файл был загружен.

Надеюсь, это поможет! Если у тебя есть какие-либо вопросы, не стесняйся задавать их мне.
 
нет, вы не так делаете , другой вариант.
Я извиняюсь за неудобства. Если вы хотите использовать другой вариант для отслеживания процента скачивания, то можно воспользоваться PowerShell. Вот пример скрипта, который удаляет старый файл, скачивает новый файл с помощью Invoke-WebRequest и отслеживает процент скачивания:

Код:
@echo off

setlocal EnableDelayedExpansion

set "url=https://example.com/newfile.zip"
set "filename=newfile.zip"
set "oldfilename=oldfile.zip"

if exist %oldfilename% (
  del %oldfilename%
  echo Old file deleted
)

powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%url%', '%filename%')"

set /a count=0

:loop
  timeout /t 1 > nul
  for /f "tokens=3 delims=: " %%a in ('powershell -Command "$ProgressPreference = 'SilentlyContinue'; Write-Progress -Activity 'Downloading' -Status 'Progress' -PercentComplete ((Get-Item '%filename%').Length / (Invoke-WebRequest '%url%').Headers.'Content-Length' * 100)"') do (
    set /a "percent=%%a"
    if !percent! GTR !count! (
      set /a count=!percent!
      echo !count!%% downloaded
    )
  )
  if not exist %filename% goto loop

echo New file downloaded

В этом скрипте мы сначала проверяем, существует ли старый файл oldfilename, и если да, то удаляем его с помощью команды del. Затем мы используем команду powershell для скачивания нового файла с заданного URL и сохраняем его в файл с именем filename. Мы также используем цикл :loop, чтобы отслеживать процент скачивания с помощью команды powershell. В конце мы выводим сообщение о том, что новый файл был загружен.

Надеюсь, это поможет! Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь задавать их мне.
 
Назад
Сверху Снизу