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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

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

Maz



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

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

Всего записей: 38794 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Вот:
VivaldiPortableCreator.bat
VivaldiPortableCreator_TEST.bat
Разницу выделил жирным.
Первый на снапшоты (выбор "S") работает, второй - нет.
 
Добавлено:
Особо смешной момент - в том, что если бы проблема была в самой строке, то не работали бы обе, а не одна...
 
Добавлено:
А всего лишь хотел спрятать от глаз юзера "пугающую" надпись про слишком длинную строку...

Всего записей: 16321 | Зарегистр. 04-11-2010 | Отправлено: 23:31 27-09-2023 | Исправлено: insorg, 23:31 27-09-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
Вы же писали, что "всё работает"?
 
Под "конкретным примером" подразумевается нечто такое:
 
Перенаправил вывод

Код:
 
curl.exe -lsL "https://vivaldi.com/blog/desktop/snapshots/"
 

в curl_out, затем содержимое curl_out по конвейеру команде

Код:
 
2>nul FINDSTR /IRC:"v_snapshot.png"
 

Получил:

Код:
 
            <a href="https://vivaldi.com/blog/desktop/youtube-feed-detection-fix-vivaldi-browser-snapshot-3134-3/"><img src="/wp-content/themes/vivaldicom-theme/img/icons/v_snapshot.png" alt="">Snapshot - 3143.3</a>
            <a href="https://vivaldi.com/blog/android/android-6-3-3139-12/"><img src="/wp-content/themes/vivaldicom-theme/img/icons/v_snapshot.png" alt="">Android Snapshot - 3139.12</a>
 

 
И что тут не работает? Без '2>nul' в stdout выводится то же самое.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 00:32 28-09-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Я тогда только на релизной проверял. А когда заметил проблему на снапшоты, уже не стал тему поднимать.
 
Добавлено:

Цитата:
И что тут не работает?
В переменную не попадают циферки нужной версии, чтобы её потом скачать.

Всего записей: 16321 | Зарегистр. 04-11-2010 | Отправлено: 13:39 28-09-2023
Unitaz



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста правильно я написал
if "%dec%"=="0" goto ID0
 
или надо было
 
if "%dec"=="0" goto ID0

Всего записей: 2290 | Зарегистр. 28-06-2002 | Отправлено: 16:39 28-09-2023
vaskamy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста помогите.
Рабочий скрипт из любой картинки и аудио делает видео:

Код:
set "ffmpeg=D:\ffmpeg\bin"
path %path%;%ffmpeg%
ffmpeg -loop 1 -i 22.jpg -i 22.mp3 -c:v libx264 -c:a copy -shortest -y video-output.mp4
pause

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

Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 16:43 28-09-2023
vaskamy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вроде бы у меня получилось отвязать имена файлов от прописывания в скрипт:

Код:
set "ffmpeg=D:\ffmpeg\bin"
path %path%;%ffmpeg%
for %%i in (*.jpg, *.png,) do (
  for %%a in (*.mp3, *.aac) do (
ffmpeg -loop 1 -i "%%i" -i "%%a" -c:v libx264 -c:a copy -shortest -y "%%~ni_replaced.mp4"
  )
)
pause

Теперь нужно сделать чтобы скрипт находился в любой другой папке и при перетаскивании на него одного из файлов он делал свою работу.

Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 21:49 28-09-2023
GCRaistlin



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

Цитата:
В переменную не попадают циферки нужной версии, чтобы её потом скачать.

У меня переменная VIVASNS получила значение

Код:
 
https://vivaldi.com/blog/desktop/youtube-feed-detection-fix-vivaldi-browser-snapshot-3134-3/
 


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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 22:44 28-09-2023
insorg



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

Цитата:
VIVASNS получила значение
Код:
https://vivaldi.com/blog/desktop/youtube-feed-detection-fix-vivaldi-browser-snapshot-3134-3/  

А у меня она его получает только при отсутствии 2^>nul в 22 строке.
 
Добавлено:
При том что точно такой же 2^>nul в 15й отлично отрабатывает, а из всего отличается между ними только набор токенов, ссылка и искомый текст.

Всего записей: 16321 | Зарегистр. 04-11-2010 | Отправлено: 22:52 28-09-2023
GCRaistlin



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

Цитата:
А у меня она его получает только при отсутствии 2^>nul в 22 строке.

Это из-за @ перед FINDSTR.
 
Добавлено:
insorg
Как я и предполагал:

Код:
 
'@FINDSTR' is not recognized as an internal or external command,
operable program or batch file.
 

Это если не в nul направлять, а в файл.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 23:18 28-09-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Внезапно. Реально помогло.
 
Добавлено:
Придётся убрать @, видимо.  
 
Добавлено:
Низкий поклон.

Всего записей: 16321 | Зарегистр. 04-11-2010 | Отправлено: 00:02 29-09-2023
Inoz2000



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

Цитата:
Теперь нужно сделать чтобы скрипт находился в любой другой папке  
если так сильно нужно, то напишите
CD/D "%~dp1"

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 06:28 29-09-2023
vaskamy



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

Цитата:
если так сильно нужно, то напишите
CD/D "%~dp1"

Спасибо добрый человек - вотэта я запарился, она у меня стояла в начале, только я её удалил и забыл, сосредоточился на другом.
 
 
Добавлено:
Скажу почему запарился, я так проникся обмусоливание темы на етом сайте "forum.script-coding.com"
они так серьёзно к етому подошли что аж нашли два способа решения, это с помощью cmd и перетаскивания по очереди файлов и с помощью .vbs но я так и не смог прописать патч для ffmpeg в vbs что бы его испытать. И статья там не сильно старая за 2020 год.

Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 08:27 29-09-2023 | Исправлено: vaskamy, 08:37 29-09-2023
Aleksandr SHCH

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какой наиболее изящный метод добавления текста первой строкой в файл? Сейчас для этого использую команду copy /a и 2 файла.

Всего записей: 2213 | Зарегистр. 02-01-2008 | Отправлено: 19:42 29-09-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr SHCH
Цитата:
Какой наиболее изящный метод добавления текста первой строкой в файл?  
Лису по методу "трёх файлов" делаешь?
Самый простой вариант типа такого:
Код:
(
@echo ADD_NEW_LINE
@type OLD_FILE.txt
)>NEW_FILE.txt

Всего записей: 16321 | Зарегистр. 04-11-2010 | Отправлено: 19:52 29-09-2023
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возвратимся в начало темы dependentlibs.list

----------
Мы все умрём. (-:

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 23:24 29-09-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
Идет обращение к FOR-переменной, значение которой может содержать "!", при включенном DE. Так делать не следует. И вывод команды в качестве сета FOR - это довольно медленное дело.
 
Добавлено:
Aleksandr SHCH

Цитата:
Сейчас для этого использую команду copy /a и 2 файла.

Вероятно, это и есть наиболее эффективное решение.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 23:49 29-09-2023
ziken



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

Код:
@if exist core (
@cd /d core
@>nul find /i "ICE=0" "dependentlibs.list"|| (>$ (Echo portable64.dll& type "dependentlibs.list")& >nul move $ "dependentlibs.list")
)

Всего записей: 543 | Зарегистр. 04-02-2017 | Отправлено: 00:04 30-09-2023 | Исправлено: ziken, 00:05 30-09-2023
ewild

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

Код:
(echo new text) >file.tmp
type file.txt  >>file.tmp
move /y file.tmp file.txt


Всего записей: 1194 | Зарегистр. 13-08-2005 | Отправлено: 01:46 30-09-2023
vaskamy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть команда создания копии файла:

Цитата:
echo f|xcopy/y/c/h/r/k/g/z %%U "%%~nU%%~xU.bak"

при повторном применении команда перезаписывает копию файла.
Нужно сделать что бы создавались копии со счётчиком перед расширением или после расширения bac и не перезаписывались существующие файлы.

Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 11:01 30-09-2023
Inoz2000



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

Код:
@echo off
cd/d "%~dp0"
SETLOCAL
SET FileName=x.cmd
SET i=0
:OnePlus
SET/A i+=1
for /f "delims=" %%U in ("%FileName%") do SET b="%%~nU%%~xU_%i%.bak"
if exist "%b%" goto :OnePlus
echo f|xcopy/y/c/h/r/k/g/z "%FileName%" "%b%"

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 11:23 30-09-2023 | Исправлено: Inoz2000, 11:23 30-09-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Компьютерный форум 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