Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 12

Автор: ComboRam
Дата сообщения: 25.05.2016 23:01
[more] здравствуйте, помогие пожалуйста одолеть одинарные скобки.
дано: качаю с трубы видео при помощи youtube-dl.
по окончании загрузки хочу переместить файлы (move).
на сайте качалки написано следующее:
--exec CMD Execute a command on the file after downloading,
similar to find's -exec syntax.
Example: --exec 'adb push {} /sdcard/Music/ && rm {}'
я запускаю команду:
youtube-dl.exe https://www.youtube.com/watch?v=x40J5G8zO5s -f 17 --exec "move "{}" ../.. "
прога по окончании закачки выполняет:
[exec] Executing command: move 'Правильная работа ног в беге. Беговое колесо.-x40J5G8zO5s.3gp' ../..
и получаю ошибку. перемещения не происходит из-за одинарных кавычек.
для примера то же in vitro :
C:\a\s\d>move 'Правильная работа ног в беге. Беговое колесо.-x40J5G8zO5s.3gp' ../..
The syntax of the command is incorrect.
подскажите пожалуйста есть возможность преодолеть эту проблему? как убрать одинарные кавычки? [/more]
Автор: Pasha_ZZZ
Дата сообщения: 25.05.2016 23:14
Joo1z
Ну навскидку что-то типа
Цитата:
sed s/^<settings^>/@@@@####/ config.xml|sed /####/,/^<\/settings^>/!d|sed s/@@@@/<что_там_вам_нужно>/
ну надо попробовать и допилить напильником слегка, зависит от версии SED, где надо добавить \n например
Автор: Ciber SLasH
Дата сообщения: 26.05.2016 14:10
Приветствую всех!
Нужно из BAT-ника, перед запуском программы, определить не нажата ли клавиша <Shift>. Если нажата, то запустить программу.
Как это реализовать?
Автор: ComboRam
Дата сообщения: 26.05.2016 21:26
Ciber SLasH
если нет желания заморачиваться то возьми choice.exe
он правда shift не поддерживает а только
The valid choice characters are: a-z, A-Z, 0-9 and ASCII values of 128 to 254
поставь timeout сколько надо и вуаля.
Автор: ipmanyak
Дата сообщения: 27.05.2016 08:00
Ciber SLasH встроенными средствами bat и системы нажатие SHIFT не отследить.
Автор: Ciber SLasH
Дата сообщения: 27.05.2016 11:17
ipmanyak
Не важно какими средствами. Можно внешней программой (желательно маленькой).
Автор: ipmanyak
Дата сообщения: 27.05.2016 11:49
Ciber SLasH Почему именно SHIFT нужен, а не другие клавиши?
Автор: 42243
Дата сообщения: 29.05.2016 01:03
Подскажите как без сторонних программ на win 7 запускать бат файл горячими клавишами ?
Если в свойствах ярлыка задать клавиши быстрого вызова, то это работает для программ, но не для бат файла.
Автор: nik4z
Дата сообщения: 29.05.2016 02:51
42243
Создать ярлык для

Код: cmd.exe /c prog.bat
Автор: 42243
Дата сообщения: 29.05.2016 15:11
nik4z

Цитата:
Создать ярлык для

Код:
cmd.exe /c prog.bat

Спасибо получилось, но не так как хотелось бы.
Если создаю ярлык для бат файла, и в нем пишу C:\Windows\System32\cmd.exe /C "D:\444.bat" то cmd.exe не запускается горячими клавишами.
А если для C:\Windows\System32\cmd.exe отправить - рабочий стол - создать ярлык, и в его свойствах пишу C:\Windows\System32\cmd.exe /C "D:\444.bat", то получается. Но ярлык хотелось бы убрать с рабочего стола. Если его переношу, то перестает запускаться. Причем если его вернуть на рабочий стол все равно не запускается.

Выходит если двух в ярлыках одинаковые пути, но один создан для cmd.exe запускающего программу, другой для программы запускающейся через cmd.exe, то ярлыки чем то отличаются. Один запускается горячими клавишами, другой нет.
Автор: nik4z
Дата сообщения: 29.05.2016 16:54
42243

Цитата:
Но ярлык хотелось бы убрать с рабочего стола.

Можно просто присвоить ярлыку атрибут "скрытый", и он не будет виден.


Добавлено:

Цитата:
Причем если его вернуть на рабочий стол все равно не запускается.

А после перезагрузки?
Автор: 42243
Дата сообщения: 29.05.2016 22:12
nik4z

Цитата:
Можно просто присвоить ярлыку атрибут "скрытый", и он не будет виден

Это идея, так и сделаю.

Цитата:
А после перезагрузки?

Думаю даже проверять нет смысла, не сработает. И мне этот ярлык на рабочем столе не нужен.

Ярлык оказывается скрыть не так просто, но способ есть
Автор: ArabiQ
Дата сообщения: 01.06.2016 18:01
Не могу понять в чем дело.
Создал cmd файл для переименования файлов:

ren "c:\2\Счётчик Мыслей - Кислород.mp3" "001. Счётчик Мыслей - Кислород.mp3"
ren "c:\2\Сансара - Боуи.mp3" "002. Сансара - Боуи.mp3"
ren "c:\2\Кульбит Joe - Заклинательная.mp3" "003. Кульбит Joe - Заклинательная.mp3"

и т.д.

Выдает ошибку:
Не удается найти указанный файл.
Я же копировал название через комманду: dir > file.cmd
а потом просто поправил его внутри.

Ковычки тоже поставил.

Что еще может быть?
Автор: Nuke142
Дата сообщения: 01.06.2016 18:02
Привет!
Как выводить лог в файл, не с результатом, а с введенным параметром?


Пример:
echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4% Time: %time%>>log.txt
wget -O - "http://ссылка">>log.txt

Я получаю файл log.txt, в котором отображается ответ сайта.
Вместо этого, как мне вывести в файл лог самой команды (wget -O - "http://ссылка") ?

Т.е. нужно знать, какой был запрос от пользователя.

Спасибо.
Автор: nik4z
Дата сообщения: 01.06.2016 19:49

Цитата:
Что еще может быть?

Проблема с кодировкой, она должна быть OEM , возможно редактор ее изменил.

Nuke142

Цитата:
как мне вывести в файл лог самой команды

Не уверен, но может и сработать

Код: wget -O - "http://ссылка"2>>log.txt
Автор: Jon_Dow
Дата сообщения: 01.06.2016 22:11
Nuke142пример:
Цитата:
echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4% Time: %time%>>log.txt
wget -O - "http://ссылка">>log.txt
для начала:
Цитата:
echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4% Time: %time%>>log.txt
ECHO wget -O - "http://ссылка">>log.txt
wget -O - "http://ссылка">>log.txt

nik4z
Цитата:
Не уверен, но может и сработать
сработает при наличии потока ошибки - вот саму ошибку и выведет


Автор: nik4z
Дата сообщения: 02.06.2016 05:17
Jon_Dow

Цитата:
вот саму ошибку и выведет

Некоторые утилиты выводят свой лог в поток stderr независимо, была ли ошибка, относится ли это к wget не знаю.
Автор: Jon_Dow
Дата сообщения: 02.06.2016 10:17
nik4z
Цитата:
Некоторые утилиты
будь добр - приведи конкретный пример такой утилиты которая выводит в stderr командную строку своего вызова.

Автор: nimdamsk
Дата сообщения: 02.06.2016 12:53
Доброго всем.

Как обработать файлы по шаблону?

Нужно сделать примерно так:


Код:
for (*.ps, *.dvi) in dir\ -recurse do {
if (
filename contains("string")
and
is_bigger_than(10MB)
)
do ps2pdf -i filename -o filename.pdf
}
Автор: Jon_Dow
Дата сообщения: 02.06.2016 14:45
nimdamsk
вот тебе два варианта парсеры с выводом имен и размера:

Код: @ECHO OFF
SET "MY_STRING=string"
:: Вариант 1
FOR /F "USEBACKQ TOKENS=1 DELIMS=" %%a IN (`DIR /A:-D /S /B "*%MY_STRING%*.ps" "*%MY_STRING%*.dv"`) DO ECHO %%a %%~za
:: Вариант 2
FOR /r %%a IN (*%MY_STRING%*.ps *%MY_STRING%*.dv) DO ECHO %%a %%~za
Автор: Joo1z
Дата сообщения: 02.06.2016 15:17
Pasha_ZZZ, спасибо за попытку.

Сделал в результате в виде:

Код: copy %conf% oldconf.xml /Y 1>NUL
sed /^<settings^>/,//d %conf%>%tmpconf%
type %addconf%>>%tmpconf%
sed /^<\/settings^>/,//!d %conf%>>%tmpconf%
del /Q %conf%
ren %tmpconf% %conf%
Автор: ArabiQ
Дата сообщения: 02.06.2016 16:17

Цитата:
Проблема с кодировкой, она должна быть OEM , возможно редактор ее изменил.


Кодировка у меня правильная, я в Far-е делаю:
http://www.picvid.ru/img/2016-06/02/ufahw1i0sz08wcjd73j6a54ng.jpg

Еще варианты есть?
Автор: Jon_Dow
Дата сообщения: 02.06.2016 18:53
ArabiQ
на приведенном скрине обрати внимание на строчку:
ren "Гарик Сукачев и "Неприкасаемые" - Ольга.mp3"
Ничего странным не кажется?! И с чего это FAR подсветку синтаксиса изменил?!
Явный ляп - как минимум на этой строчке будет ругань...
Автор: ComboRam
Дата сообщения: 02.06.2016 19:23
ArabiQ

Цитата:
Я же копировал название через комманду:  dir > file.cmd
а потом просто поправил его внутри.

дорогой, ты выбрал для решения своих задач не лучший инструмент.
вот: http://www.softpointer.com/download.htm
ломать не надо. 30 дней полнофункциональный триал.
Автор: Jon_Dow
Дата сообщения: 02.06.2016 19:34
ComboRam
вот кстати да - высказывание:
Цитата:
Я же копировал название через комманду: dir > file.cmd
заведомо противоречит приведенному скрину. Явная ошибка постобработки списка, так как символ двойной кавычки частью имени быть не может.
Автор: ipmanyak
Дата сообщения: 03.06.2016 07:43
ArabiQ Кодировка у тебя сейчас OEM 866 , а в винде имена файлов в кодировке 1251 ANSI. У FAR дефолтовая кодировка 866, насколько я помню, если копи-пастил в нем, то имхо так и получилось.

Поставь в свой батник в самом начале команду:
chcp 1251 > nul
затем ren ....
Должно сработать.

В названии песни Сукачева - НЕПРИКАСАЕМЫЕ стоят в кавычках, или заранее переименуй этот файл убрав кавычки, или обрамляй каждую кавычку кавычками , типа
"""НЕПРИКАСАЕМЫЕ"""
Автор: Jon_Dow
Дата сообщения: 03.06.2016 08:43
ipmanyak
попробуй для начала создать имя файла содержащее кавычки, прежде чем делать какие-либо умозаключения
Автор: nik4z
Дата сообщения: 03.06.2016 09:08
Jon_Dow
Имя файла может содержать одиночные кавычки, внешне двойные и две одиночных выглядят одинаково.
Автор: wolf0425
Дата сообщения: 03.06.2016 10:10

Цитата:
Имя файла может содержать одиночные кавычки, внешне двойные и две одиночных выглядят одинаково.

в ФАРе моноширинный шрифт - выглядеть будет не так.
так что скорее мы видим просто результат преобразования двойных угловых кавычек (есть 1251) в обычные двойные (866)
Автор: Jon_Dow
Дата сообщения: 03.06.2016 10:17
wolf0425
Цитата:
так что скорее мы видим просто результат преобразования двойных угловых кавычек (есть 1251) в обычные двойные (866)
присоединяюсь
И это заведомо не согласуется с утверждением
Цитата:
Я же копировал название через комманду: dir > file.cmd
Правильное утверждение будет такое: я тут чего-то накосорезил сам не помню как

nik4z
терпеливо жду пример утилиты

Страницы: 123456789101112131415161718

Предыдущая тема: Не устанавливаются обои на рабочий стол (Windows 2003 x64)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.