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

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

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

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 189 190 191 192 193 194 195 196 197 198 199

   

cchameleone



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ 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 (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2271 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kero1
Цитата:
удаление всех директорий CVS начиная с текущей директории рекурсивно

Цитата:
for /r %d in (.) do if /i "%~nxd"=="cvs" rmdir /s /q "%d"

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 07:53 21-08-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kero1
Это Вы из командной строки запускаете или из батника? Если из батника, то надо знак % перед переменными удваивать.
 

Цитата:
FOR /d /r . %%d IN (CVS) DO @IF EXIST "%%d" rd %%d

 
или так  
 

Цитата:
@echo off
FOR /F "tokens=*" %%I IN ('dir /S /B ^| FIND "CVS"') DO (
rd /S /Q %%I
)  

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 07:57 21-08-2020 | Исправлено: Fenrizz, 08:02 21-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Fenrizz
 
испробовал все варианты  чёто тоже ничего  Только стало появлятся записи что  
Системе не удается найти указанный путь.
Не удается найти указанный файл.
 
запускал из батника.  В начале батника идёт переход в корневую папку  
CD /D "d:\soft aaa\"
 
Путь до папок
d:\soft aaa\features\Data\minidumps
d:\soft aaa\features\Data1\minidumps

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 08:18 21-08-2020 | Исправлено: Kero1, 08:27 21-08-2020
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kero1
Во-первых, включите echo и сделайте скрин результата. Во-вторых, да, во всех батниках проценты надо удваивать.

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 08:25 21-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Спасибо.
малость ошибся,  , ваш вариант только сработал, с удвоенными процентами.
это в  варианте Fenrizz Системе не удается найти указанный путь.
Не удается найти указанный файл.  
 
А как добавить ещё других папок для удаления ?

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 08:39 21-08-2020
Fenrizz



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

Цитата:
это в  варианте Fenrizz Системе не удается найти указанный путь.  

Если в пути к папке есть пробелы, то надо в кавычки брать  
 

Цитата:
FOR /d /r . %%d IN (CVS) DO @IF EXIST "%%d" rd "%%d"  

 

Цитата:
@echo off  
 FOR /F "tokens=*" %%I IN ('dir /S /B ^| FIND "CVS"') DO (  
 rd /S /Q "%%I"
)  

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 08:46 21-08-2020 | Исправлено: Fenrizz, 08:46 21-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
получилось. Но в первом варианте удаляет только пустые папки.
 
А не знаете как переместить все файлы  из одной папки в другую кроме исключённых по расширениям?

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 02:31 22-08-2020
Fenrizz



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

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

Логично. Чтобы удалял не пустые надо добавить ключи /S /Q
 

Цитата:
А не знаете как переместить все файлы  из одной папки в другую кроме исключённых по расширениям?

ROBOCOPY c:\source d:\dest /MOV /XF *.MP3 *.WMV *.AVI
 
Под XP нет по умолчанию, нужно скачивать  
 

Цитата:
@echo off  
  FOR /F "tokens=*" %%I IN ('dir /B c:\source') DO (  
  echo %%~xI
  if NOT "%%~xI"==".wmv" (if NOT "%%~xI"==".avi" (if NOT "%%~xI"==".mp4" (move "c:\source\%%I" d:\dest\)))
 )    

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 12:43 22-08-2020 | Исправлено: Fenrizz, 13:37 22-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Спасибо.  
только вариант с не ROBOCOPY перемешает и папки.
 
 
А не знаете как в батнике сделать чтоб определённая прога (ffmpeg) брала файлы из папки с определёнными именами но  имена меняются ,  , то есть файлы будут подкладываться вручную в папку ну и у них соответственно будут разные имена но  одинаковые расширения. прога (ffmpeg) не понимает символы типа *.
то-есть запускаешь батник из любого каталога и в нём всё прописано где ffmpeg брать файлы и  куда их подставить в командной строке.
примерная строка  
ffmpeg.exe -i файл1(разное название).mp4 -i файл2(разное название).mp4 -o имя первого обрабатываемого файла плюс "finale".mp4
 
файл1.mp4, файл2.mp4 - файлы что должны находится в папке поиска\источника   это те файлы что подставить.
-o имя первого обрабатываемого файла плюс "finale".mp4 - выходной файл.

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 02:53 23-08-2020 | Исправлено: Kero1, 03:10 23-08-2020
Fenrizz



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

Цитата:
только вариант с не ROBOCOPY перемешает и папки.  

Да, надо папки исключить из вывода команды DIR  
 

Цитата:
@echo off    
   FOR /F "tokens=*" %%I IN ('dir /B /A:-D c:\source') DO (    
   echo %%~xI  
   if /I NOT "%%~xI"==".wmv" (if /I NOT "%%~xI"==".avi" (if /I NOT "%%~xI"==".mp4" (move "c:\source\%%I" d:\dest\)))  
  )  

 
И тут надо учитывать, что сравнение строк регистрозависимо, так что надо добавить "if /I ..."
 
Добавлено:
Не совсем понятно, как он должен различать, какой файл первый, а какой второй?  
Примерно так
 

Цитата:
For /R c:\source\ %%I IN (*.mp4) do ffmpeg.exe -i "c:\source\%%~nI.mp4" -i "c:\source\%%~nI2.mp4" -o "c:\source\%%~nI_finale.mp4"  

 

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 07:58 23-08-2020 | Исправлено: Fenrizz, 14:16 24-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
угу, перепутал,   первый это .mp4  , а второй .aac .
 
зы
ffmpeg очень капризная прога, там чуть шо не так , так сразу ошибка .

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 08:36 23-08-2020 | Исправлено: Kero1, 08:45 23-08-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда так
 
For /R c:\source\ %%I IN (*.mp4) do ffmpeg.exe -i "c:\source\%%~nI.mp4" -i "c:\source\%%~nI.aac" -o "c:\source\%%~nI_finale.mp4"  

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 09:19 23-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
первый находит  , а второй нет .
 
track 1.mp4
track 2.aac
 
track 1.aac: No such file or directory,
но там track 2.aac

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 00:26 24-08-2020 | Исправлено: Kero1, 00:26 24-08-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kero1
Очевидно, что не находит - он ищет все файлы с расширением .mp4 и для каждого берёт файл с таким же именем, но расширением .aac
А как Вам надо?

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 12:30 24-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
файлы в  папке будут например:
 
первый файл :    разное название.h264         или        разное название.h264       или           разное название.mp4
второй файл :     разное название.mp3          или        разное название.m4а        или          разное название.aac  
 
и так далее.  
Расширения могу прописывать в батнике каждый раз отдельно, для каждой пары придётся делать отдельный батник. но имена - переменная.
mp4 приводил просто как условный пример. Основной смысл чтоб  ffmpeg знал что брать  и  куда их подставить в командной строке. Вероятно возможно даже в одном батнике прописать какие наборы расширений для первого и какие для другого но наверно это сложно.

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 23:36 24-08-2020 | Исправлено: Kero1, 10:05 29-08-2020
beliaden

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер, Господа.
Необходимо решение задачи. В текстовом файле напр: "ups.txt" есть следующие строки:
 
NN827-GTRF111111111-EED7893-3.78.14.200
NS456-GTRF000000000-EZD7893-3.78.14.1
 
необходимо оставить запись в строках"GTRF00000000" "GTRF111111111"(которая может изменятся) не изменяется только тире, спереди и сзади, сохранить либо в этом файле, или перенести его в другой текстовый файл (как будет проще). Короче говоря, необходимо то что между тирешками)
 
Вот так:
 
GTRF111111111
GTRF000000000

Всего записей: 24 | Зарегистр. 16-03-2013 | Отправлено: 22:17 28-08-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
for /f "tokens=1,2,3,4 delims=-" %%G in (ups.txt) do echo %%H >>ups-2.txt

Всего записей: 405 | Зарегистр. 12-09-2017 | Отправлено: 22:43 28-08-2020 | Исправлено: Fenrizz, 22:44 28-08-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
beliaden
А записей много в файле?
 
Добавлено:
beliaden (пост)
Цитата:
Строк?  
Да, просто если файл огромный, то обрабатывать будет долго.

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 22:51 28-08-2020 | Исправлено: VVL99, 01:24 29-08-2020
beliaden

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Строк?
 
Добавлено:
Длина строки?
 
Добавлено:
Fenrizz. Пока не понял, как это работает) Класно! Огромное Спасибо!

Всего записей: 24 | Зарегистр. 16-03-2013 | Отправлено: 00:00 29-08-2020
Kero1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
а по моему вопросу не знаете? или может что непонятно описал ?

Всего записей: 2088 | Зарегистр. 23-08-2011 | Отправлено: 04:55 29-08-2020
   

Страницы: 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 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru