Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
часть 1 | часть 2 | часть 3 | часть 4 | часть 5 | часть 6
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору > Автоматизация администрирования
Microsoft Windows > Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
> Описание Cmd.exe > Command shell overview
> Using batch files > Using batch parameters > Using filters > Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 39008 | Зарегистр. 26-02-2002 | Отправлено: 22:41 20-06-2024
komputeryuzer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Цитата:
если по пути встретится, скажем, NoLogs, то до Logs не поднимется.

Ну и что.. поднимусь мышкой.. тук-тук-тук... как сейчас делаю ручками

Цитата:
Вы запускаете из-под ФАРа

Да, заметил, что даже когда фор из к/строки успешно меняет раздел, но после окончания оказываюсь в начальной папке..
поэтому пробую в консоли (вне фара) но, потом я заставлю работать в фаре.
 
www_world спасибо, попробую..
 
Вот тут такая проблема вылезла
for %i in (14,31,1,12,10,0,4) do if not %cd:~-4%==Logs (cd ..)else echo %i
 
%cd:~-4% фиксируется в начале и на каждом этапе выдаёт одно и тоже..
как-то можно, чтобы значения динамические были ? (в батнике такое на наблюдается)
 
тогда, весь путь засунуть в набор чтоли? как это реализовать? путь разбить на папки и пройтись по ним.. доставать папки через &и
 
 
Добавлено:
xrun1
Цитата:
Там макрос нужен.
спасибо, буду пробовать
макрос уже записал.(переход в соседнюю папку).. работает..  
хочу добавить подьём до корня тек. папки и переход в соседн.папку.
 
В макросах вроде нет меток.. так бы сделал в стиле батника (с гото)
 
 
 
Добавлено:

Цитата:
 И как говорил выше, для фара можно попробовать добавить команду CD ~

Пробовал, ругается на ~
 
 
Добавлено:
www_world
Цитата:
 это не описание задачи"Вам нужно подняться в папку"

net, я писал
Цитата:
надо подниматься вверх по папкам до нужной папки  
ключевое слово "до нужной"
 

Всего записей: 801 | Зарегистр. 21-04-2010 | Отправлено: 23:15 23-06-2024
xrun1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
komputeryuzer
Попробуйте добавить
pushd %cd%
popd

Всего записей: 808 | Зарегистр. 26-12-2009 | Отправлено: 23:54 23-06-2024
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
komputeryuzer

Цитата:
В макросах вроде нет меток.. так бы сделал в стиле батника (с гото)

В макросах используется полноценный язык lua. Если, конечно, речь о FAR 3.

----------
Разум когда-нибудь победит

Всего записей: 3368 | Зарегистр. 09-02-2003 | Отправлено: 00:46 24-06-2024
www_world

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
komputeryuzer

Цитата:
net, я писал
Цитата:
надо подниматься вверх по папкам до нужной папки  
ключевое слово "до нужной"
 
Как вы оказались в нижней папке? Зачем вы в ней оказались? Зачем вам папка логс? Что в ней? Почему нужно идти снизу? и тд и тп.
В 95% случаев, когда выясняется вся поднаготная, решением выступает батник в 2 строки,
Соответственно, пока это неизвестно, в тех же 95 % случаев - все что было до этого оказывается разработкой эффективных методов чесаниия правого уха левой пяткой, а работа помошников - пустой тратой времени и страниц форума.
Может у вас домашка такая - потому и неимеющая практического смысла? Тогда я пас.

Всего записей: 345 | Зарегистр. 04-11-2018 | Отправлено: 02:33 24-06-2024
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нельзя ли сделать чтобы пути к файлам не в одну строку были, а каждый путь с новой строки?
Если очень много файлов не очень удобно их в одну строку перекидывать.

 
Пытаюсь решить проблему своими силами, вот нашел в инете код

Код:
setlocal enableextensions enabledelayedexpansion
    set "var="
    for /f "usebackq delims=" %%a in (list.txt) do set "var=!var!%%a "
        echo.%var% >> rez.txt
       

Нужно строки (пути файлов) записать в одну строку, для адаптации к этой  
 
Вот сделал простенькую консольную утилиту на основе IObitUnlocker 1.3.0.3 от Simple Code
 
Список путей к файлам list.txt
 
Вроде как работает, но на половину. Выводит включительно только до  
"H:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_b53c057d22ce6f37\IntelCpHeciSvc.exe", и всё, дальше не выводит.
 
Незнаю, может это связано с ограничением в длине строки? Не программист.
Подскажите, как сделать, чтобы выводились все строки из list.txt в одну строку в rez.txt? Спасибо.

Всего записей: 1155 | Зарегистр. 18-11-2006 | Отправлено: 17:04 24-06-2024 | Исправлено: sakatgg, 17:10 24-06-2024
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sakatgg
Никак. Ограничение на длину командной строки.

----------
Magically yours
Raistlin

Всего записей: 4082 | Зарегистр. 18-04-2005 | Отправлено: 17:10 24-06-2024
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sakatgg

Цитата:
Подскажите, как сделать, чтобы выводились все строки из list.txt в одну строку в rez.txt? Спасибо

Может в эту сторону как-то рыть

Код:
@echo off
for /f "usebackq delims=" %%a in (list.txt) do (
  <nul set /p="%%a ">> rez.txt
)

Всего записей: 3399 | Зарегистр. 24-10-2002 | Отправлено: 19:04 24-06-2024
www_world

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sakatgg

Цитата:
Список путей к файлам list.txt

Что вам мешает добавить в начало каждой строки

Цитата:
BitUnlocker.exe /Delete /Normal  

Всего записей: 345 | Зарегистр. 04-11-2018 | Отправлено: 19:22 24-06-2024
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin

Цитата:
Никак. Ограничение на длину командной строки.

Список сократил вдвое, сделался в одну, вставил к BitUnlocker.exe /Delete /Normal  
Но не тут то было, пробел лишний.
Пробел между путями, созданный таким образом, как убрать?
 
Death_INN

Цитата:
Может в эту сторону как-то рыть

Так получается весь длинный список в одну строку, но та же проблема, что выше, пробел лишний, как убрать?
Тем более в конечном батнике опять же не отработается полностью, из-за ограничений на длину.
 
www_world

Цитата:
Что вам мешает добавить в начало каждой строки

Очень долго обработка идет.
 
P.S.
Разобрался с пробелом

Код:
"var=!var!%%a"

В одном батнике прописал 2 BitUnlocker.exe /Delete /Normal с двумя пол списками - нормально удалились все.

Всего записей: 1155 | Зарегистр. 18-11-2006 | Отправлено: 21:03 24-06-2024 | Исправлено: sakatgg, 21:54 24-06-2024
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sakatgg, я дал вариант, чтобы в rez.txt попали все строки (хоть миллион) одной строкой, а уж какие там дальше ограничения в сторонних прогах мне не ведомо, не юзал. А пробел удалить не составляет труда.

Всего записей: 3399 | Зарегистр. 24-10-2002 | Отправлено: 22:19 24-06-2024
Simple Code

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Очень долго обработка идет.

Это скорей всего из-за того, что IObitUnlocker.exe при каждом запуске лезет в интернет проверять обновление, я так и не нашёл способ как это отключить.

Цитата:
Так получается весь длинный список в одну строку

Что касается синтаксиса в одну строку, опять же, так реализовано в оригинале.
 
Попробую полностью переделать утилиту, использовать только драйвер без модулей и переделаю синтаксис. Обработка будет мгновенной.

Всего записей: 200 | Зарегистр. 19-11-2022 | Отправлено: 02:10 25-06-2024 | Исправлено: Simple Code, 02:12 25-06-2024
351878



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
@echo off
for %%x in (%*) do (
ffplay -hide_banner -f lavfi "amovie=%%x, showspectrum=color=channel:scale=cbrt:orientation=vertical:overlap=1"
)

друзья, почему не видит дропнутый файл? почините плиз.

Всего записей: 1153 | Зарегистр. 28-03-2016 | Отправлено: 19:55 03-07-2024 | Исправлено: 351878, 20:48 03-07-2024
www_world

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
351878
Напишите какой строкой пытаетесь запустить этот батник

Всего записей: 345 | Зарегистр. 04-11-2018 | Отправлено: 00:08 04-07-2024
351878



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
www_world
в смысле? сие ж простейший дроплет.
кидаю, получаю :No such file or directory
если просто строка то работает:

Код:
ffplay -hide_banner -f lavfi "amovie=input.mp3, showspectrum=color=channel:scale=cbrt:orientation=vertical:overlap=1"  

Всего записей: 1153 | Зарегистр. 28-03-2016 | Отправлено: 08:53 04-07-2024 | Исправлено: 351878, 09:02 04-07-2024
www_world

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
351878

Цитата:
в смысле? сие ж простейший дроплет.
кидаю, получаю :No such file or directory
если просто строка то работает:  

Причем тут строка, если речь о батнике запускаемом с параметрами.
В общем, не хотите, как хотите.

Всего записей: 345 | Зарегистр. 04-11-2018 | Отправлено: 09:24 04-07-2024
351878



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
не хотите, как хотите.

так мне вопрос не понятен!)
изложил проще некуда
 
 
Добавлено:

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

а причём тут батник с параметрами, если речь о дроплете.

Всего записей: 1153 | Зарегистр. 28-03-2016 | Отправлено: 11:58 04-07-2024
www_world

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
351878
Продемонстрируйте, что и как вы делаете (анимированный gif с экрана) и тогда вам точно подскажут ошибку.

Всего записей: 345 | Зарегистр. 04-11-2018 | Отправлено: 19:37 04-07-2024
Simple Code

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
друзья, почему не видит дропнутый файл? почините плиз.

Предполагаю, что дело в кавычках:

Код:
 
@echo off
for %%x in (%*) do (
    ffplay -hide_banner -f lavfi "amovie=""%%~x"", showspectrum=color=channel:scale=cbrt:orientation=vertical:overlap=1"
)

Всего записей: 200 | Зарегистр. 19-11-2022 | Отправлено: 20:20 04-07-2024
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Simple Code
И в неправильном синтаксисе FOR (отсутствии одинарных кавычек вокруг сета).

----------
Magically yours
Raistlin

Всего записей: 4082 | Зарегистр. 18-04-2005 | Отправлено: 20:41 04-07-2024
351878



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
дело в кавычках
нет

Цитата:
отсутствии одинарных кавычек вокруг сета
тоже нет
 
мне помогли в л.с.
в итоге :

Код:
@echo off
cd %~dp1
    ffplay -hide_banner -f lavfi "amovie=%~nx1, showspectrum=color=channel:scale=cbrt:orientation=vertical:overlap=1"

Всего записей: 1153 | Зарегистр. 28-03-2016 | Отправлено: 21:34 04-07-2024 | Исправлено: 351878, 21:36 04-07-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru