powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите написать батник
13 сообщений из 13, страница 1 из 1
Помогите написать батник
    #38729626
Я по нему даже книг не нашел

Опишу алгоритм:
1. Создаем папку для изображений.
2. Есть ссылки на изображения, нужно создать массив, запонить его ссылками.
3. Проходимся в цикле по массиву и сохраняем все изображения в папку, причем имена у сохраненных файлов должны быть 0.jpg...N.jpg, т.е. как и значение счетчика

Единственное что я смог сделать это создать папку. Методом тыка не получается все проделать.

Ссылки типа таких

" http://cs14101.vk.me/c7007/v7007430/1eead/adfC1UWQgfI.jpg", " http://cs14101.vk.me/c7007/v7007266/20a96/YHHQY-YPFt0.jpg", " http://cs14101.vk.me/c7007/v7007266/20a7e/bf3gqbEQ8zo.jpg",
...
Рейтинг: 0 / 0
Помогите написать батник
    #38729654
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибн Масул Акаба,

Допустим, у тебя есть текстовый файл url_list.txt со ссылками, тогда это будет выглядеть примерно так:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
:: создаем каталог
MD MYFOLDER
:: начальное значение счетчика
set COUNTER=0
:: перебор всех ссылок из файла (одна строка - одна ссылка)
for /F "tokens=*" %%A in ( url_list.txt ) do (
  :: нарастили счетчик
  set /A COUNTER=+1 
  :: имя файла для загрузки
  set FNAME=%COUNTER%.jpg
  :: загрузили ссылку в файл
  download %%A MYFOLDER\%FNAME%
)



Вместо download можно использовать или bitsadmin (начиная Win7) или wget, или еще какую тулзу - я видел решения и на VBS и на PowerShell.
...
Рейтинг: 0 / 0
Помогите написать батник
    #38730829
user199617
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster, спс. Я на ваське уже написал, к нему в отличие от ватника и документация есть и примеров полно. Да и на язык программирования вася с натяжкой, но похож.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Dim links(2)
links(0) = "http://cs14101.vk.me/c7007/v7007430/1eead/adfC1UWQgfI.jpg"
links(1) = "http://cs14101.vk.me/c7007/v7007266/20a96/YHHQY-YPFt0.jpg"
links(2) = "http://cs14101.vk.me/c7007/v7007266/20a7e/bf3gqbEQ8zo.jpg"
 
Dim folder
 
folder = SelectFolder(".")
 
Dim aux, aux1
 
For Each link In links
    aux = Split(link, "?")
    aux1 = Split(aux(0), "/")
    Download link, folder & "/" & aux1( Ubound(aux1) )
Next
 
WScript.Echo "Download has finished."
 
Sub Download(url, dst)
    Dim http, stream
 
    Set http = CreateObject("microsoft.xmlhttp")
    Set stream = CreateObject("adodb.stream")
    http.Open "GET", url, False
    http.Send
 
    With stream
        .type = 1
        .open
        .write http.responseBody
        .saveToFile dst, 2
    End With
End Sub
 
Function SelectFolder( myStartFolder )
' This function opens a "Select Folder" dialog and will
' return the fully qualified path of the selected folder
'
' Argument:
'     myStartFolder    [string]    the root folder where you can start browsing;
'                                  if an empty string is used, browsing starts
'                                  on the local computer
'
' Returns:
' A string containing the fully qualified path of the selected folder
'
' Written by Rob van der Woude
' http://www.robvanderwoude.com
 
    ' Standard housekeeping
   Dim objFolder, objItem, objShell
   
    ' Custom error handling
   On Error Resume Next
    SelectFolder = vbNull
 
    ' Create a dialog object
   Set objShell  = CreateObject( "Shell.Application" )
    Set objFolder = objShell.BrowseForFolder( 0, "Select Folder", 0, myStartFolder )
 
    ' Return the path of the selected folder
   If IsObject( objfolder ) Then SelectFolder = objFolder.Self.Path
 
    ' Standard housekeeping
   Set objFolder = Nothing
    Set objshell  = Nothing
    On Error Goto 0
End Function
...
Рейтинг: 0 / 0
Помогите написать батник
    #38730839
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибн Масул АкабаЯ по нему даже книг не нашел
Хэлп есть http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true
...
Рейтинг: 0 / 0
Помогите написать батник
    #38730973
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user199617DarkMaster, спс. Я на ваське уже написал

У меня получилось несколько короче :)
...
Рейтинг: 0 / 0
Помогите написать батник
    #38731081
user199617
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Dim links(2)
links(0) = "http://cs14101.vk.me/c7007/v7007430/1eead/adfC1UWQgfI.jpg"
links(1) = "http://cs14101.vk.me/c7007/v7007266/20a96/YHHQY-YPFt0.jpg"
links(2) = "http://cs14101.vk.me/c7007/v7007266/20a7e/bf3gqbEQ8zo.jpg"
Main
Sub Main()
    Dim title, oShell, oFolder, tmp, tmp1
    title = Chr(194) & Chr(251) & Chr(225) & Chr(229) & Chr(240) & Chr(232) & Chr(242) & Chr(229) & Chr(32) & Chr(239) & Chr(224) & Chr(239) & Chr(234) & Chr(243) & Chr(32) & Chr(228) & Chr(235) & Chr(255) & Chr(32) & Chr(241) & Chr(238) & Chr(245) & Chr(240) & Chr(224) & Chr(237) & Chr(229) & Chr(237) & Chr(232) & Chr(255) & Chr(58)
    Set oShell = CreateObject("Shell.Application")
    Set oFolder = oShell.BrowseForFolder(0, title, 0)
    If oFolder is Nothing then
        Exit Sub
    End If
    For Each link in links
        tmp = Split(link, "?")
        tmp1 = Split(tmp(0), "/")
        Download link, oFolder.self.path & "/" & tmp1( Ubound(tmp1) )
    Next
    WScript.Echo Chr(209) & Chr(234) & Chr(224) & Chr(247) & Chr(232) & Chr(226) & Chr(224) & Chr(237) & Chr(232) & Chr(229) & Chr(32) & Chr(231) & Chr(224) & Chr(226) & Chr(229) & Chr(240) & Chr(248) & Chr(229) & Chr(237) & Chr(238) & Chr(46)
End Sub
Sub Download(url, dst)
    Dim oHttp, oStream
    Set oHttp = CreateObject("Microsoft.XMLHttp")
    Set oStream = CreateObject("Adodb.Stream")
    oHttp.Open "GET", url, False
    oHttp.Send
    With oStream
        .type = 1
        .Open
        .Write oHttp.responseBody
        .SaveToFile dst, 2
    End With
End Sub



Как аналогичная программа на ваське будет выглядеть?

Чтобы с диалогом выбора папки, а также кода скачиваешь файл например /path/to/file.mp3?extra=somehash
он его сохранял в выбранной папке как file.mp3
...
Рейтинг: 0 / 0
Помогите написать батник
    #38731413
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user199617,

Я не знаток VB. Если задача требует UI - я и беру инструмент, который мне позволит этот UI построить.
Кстати, задумайся - вдруг у тебя будет 100500 ссылок, а не 3 константы как сейчас?
...
Рейтинг: 0 / 0
Помогите написать батник
    #38731549
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ибн Масул Акаба, задача переименования файлов в каталоге с произвольных имен
в 0.jpg, 1.jpg... решалась как-то тривиально нескольмими мышко-кликами в Windows Explorer.

Как точно я не помню но думаю нагуглить можно.
...
Рейтинг: 0 / 0
Помогите написать батник
    #38731606
user199617
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster, собственно все это затевалось ради этого приложения, которое позволяет скачивать альбомы с фото и музыкой с сайта Вконтакте . Можешь испытать.
...
Рейтинг: 0 / 0
Помогите написать батник
    #38731814
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user199617,

Тогда зачем тебе батник? Шел бы сразу в профильный форум...
...
Рейтинг: 0 / 0
Помогите написать батник
    #38733215
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Powershell для сравнения
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# 1. Создаем папку для изображений.

md c:\downloads

#2. Есть ссылки на изображения, нужно создать массив, запонить его ссылками.

$urls = gc c:\url_list.txt
# 3. Проходимся в цикле по массиву и сохраняем все изображения в папку, причем имена у сохраненных файлов должны быть 0.jpg...N.jpg, т.е. как и значение счетчика

0..($urls.Length - 1) | %{  Start-BitsTransfer $urls[$_] c:\downloads\$_.jpg }
...
Рейтинг: 0 / 0
Помогите написать батник
    #38733223
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper,

У тебя имя файла вроде не меняется на "0.jpg" вместо "../jfljsdlkf.jpg". Или я ошибаюсь?
...
Рейтинг: 0 / 0
Помогите написать батник
    #38733224
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Тьфу блин, таки ошибаюсь. Счетчик не учел. В принципе - те же, только в профиль ;)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите написать батник
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]