Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле

Ответить
Настройки темы
CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле

(*.*)


Сообщения: 36491
Благодарности: 6675


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Всем привет!

Имеется список ссылок в текстовом файле (каждая ссылка - URL), по одной на строку. Нужно обработать их все, передавая по одной за раз в качестве параметра командной строки исполняемому файлу. Это нужно для wget, который работает так:
Код: Выделить весь код
wget URL {другие параметры}
У wget есть параметр -i input.txt, который должен обрабатывать список ссылок из файла, но почему-то он не срабатывает - пишет, что URLы не найдены... Хотя эти же URLы по одному в командной строке распознает. Поэтому ищу обxодной путь. В итоге нужен пакетный файл, который по одному обработает все ссылки из текстового файла.

Все ссылки имеют вид
Код: Выделить весь код
http://oszone.net/print/ХХХХ
Спасибо.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 13:53, 18-02-2009

 


Moderator


Сообщения: 53172
Благодарности: 15430

Профиль | Отправить PM | Цитировать


Vadikan, как-то так:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions
Set FN=input.txt
For /F "Delims=" %%I In (%FN%) Do wget %%I {другие параметры}
если батнику имя файла передается параметром, то так:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions
For /F "Delims=" %%I In (%1) Do wget %%I {другие параметры}
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:24, 18-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Petya V4sechkin, спасибо!

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 14:37, 18-02-2009 | #3


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Подниму свою тему восьмилетней давности :) Потому что это фактически продолжение той же задачи.

Есть скрипт, который скачивает содержимое потоковых плейлистов локально
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions
Set FN=playlists.txt
For /F "Delims=" %%I In (%FN%) Do youtube-dl --extract-audio --audio-format mp3 %%I
В файле playlists.txt в каждой строке ссылки вида:
Код: Выделить весь код
https://somesite.com/<username>/sets/nn-n
где nn-n принимает значения 17-1, 10-1, 9-1 и т.п.

Сейчас все файлы падают в одну папку (со скриптом), а надо для каждого плейлиста - в свою, с именем nn-n. Поможете? :)

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 00:25, 19-04-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Попробуйте так (не проверялось):
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=playlists.txt

if exist "%sSourceFile%" (
	for /f "usebackq delims=" %%i in ("%sSourceFile%") do (
		for /f "usebackq delims=" %%j in ('%%i') do (
			if not exist "%%~nxj" md "%%~nxj"
			
			pushd "%%~nxj" && (
				"youtube-dl.exe" --extract-audio --audio-format mp3 %%i
				popd
			)
		)
	)
) else (
	echo Can't find source file [%sSourceFile%].
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:15, 19-04-2017 | #5


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Iska, отлично, годится! Только
Код: Выделить весь код
"..\youtube-dl.exe"
т.к. утилита уровнем выше лежит.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 01:51, 19-04-2017 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
Только
Код: Выделить весь код
"..\youtube-dl.exe"
т.к. утилита уровнем выше лежит. »
Я думал, он у Вас где-нибудь в PATH, или же в оригинальном пакетном файле обращение будет идти по полному пути .
Если youtube-dl.exe расположен относительно самого пакетного файла, тогда лучше наподобие:
Код: Выделить весь код
"%~dp0youtube-dl.exe" …

Отправлено: 02:30, 19-04-2017 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Найти и заменить в текстовом файле. Как? Pozia AutoIt 15 11-03-2010 19:12
[решено] Сохранение параметров скрипта во внешнем файле Freez AutoIt 2 14-12-2009 19:00
CMD/BAT - [решено] Отделить последние цифры из строчки в текстовом файле ZeroCrash Скриптовые языки администрирования Windows 4 29-06-2009 16:03
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? Pozia AutoIt 23 14-05-2009 21:41
[решено] Работа из командной строки | Убрать все пробелы в текстовом файле Greyman Хочу все знать 11 17-06-2007 22:44




 
Переход