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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Sisin



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

Цитата:
convert icon.jpg -scale 32 32.png  convert icon.jpg -scale 48 48.png  convert icon.jpg -scale 128 128.png  convert icon.jpg -scale 256 256.png  convert 32.png 48.png 128.png 256.png  icon.ico

 
Только заметил, что 256.png создается, а внутри icon.ico размер 256 приводит к косяку (вместо иконки 256 рябь).  
 
Решение: convert icon.jpg -compress None -define icon:auto-resize=256,48,32,16 icon.ico
 

Всего записей: 881 | Зарегистр. 07-05-2010 | Отправлено: 15:12 05-04-2018 | Исправлено: Sisin, 13:59 06-04-2018
Proshaa

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
приветствую.
нужно отсортировать папку с jpg на две: в одной портретная ориентация, в другой - ландшафт, т.е. по соотношению сторон. папка - текущая, выходные - вложенные, имена без разницы, например 1 и 2. тег поворота в EXIF - пофиг, именно текущая ориентация.
заранее благодарен.

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 09:39 06-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Proshaa
Вот, например, с помощью nconvert:
Цитата:
@echo off
 
for %%a in (*.jpg) do call :ImageFile %%a
goto :eof
 
:ImageFile
for /f "tokens=3" %%b in ('nconvert -info %1^|find "Width"') do set Width=%%b
for /f "tokens=3" %%b in ('nconvert -info %1^|find "Height"') do set Height=%%b
set Dest=Landscape
if "%Width%" LSS "%Height%" set Dest=Portrait
copy /b %1 %Dest%\%1
goto :eof

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 12:38 06-04-2018
Proshaa

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

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 13:18 06-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Proshaa
Да уж... сам батник - это тоже сторонний софт, если щито...
 
Вот батник для получения инфы, используется жабоскрипт, но он встроен в батник: эффект якобы отсутствия стороннего софта (фиг знает только зачем):
https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/imgInfo.bat

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 13:55 06-04-2018
Proshaa

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

Цитата:
Да уж... сам батник - это тоже сторонний софт, если щито...  

категорически не согласен ))  
батник - это всё же скрипт, а не софт. софт - командный процессор - "живёт" в окнах ещё из DOS. и умирать не собирается.
а за ссылку - огромное спасибо, вы напомнили мне, что я тупица )) не в ту сторону мыслил. конечно же - vbs, а не bat решит вопрос легко и просто. с этим управлюсь сам ))
 
P.S. кстати - почему названо "гибрид batch+js" - совершенно непонятно. обычный vbs внутри батника.

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 14:41 06-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Proshaa
Во-первых, это JS, а не VBS (ну хотя бы в концы строк можно глянуть, если совсем влом). И во-вторых, это батник, живущий в JS-комменте.

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 14:44 06-04-2018
Proshaa

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
WScript, FSOObj (в командах) - это всё же vbs, а никак не ява. а куда он помещён - дело пятое. ну да ладно: проблема решена, ещё раз спасибо за наставление на путь истины ))

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 15:16 06-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Proshaa WScript - это стандартный объект Windows Script Host, при чем здесь язык? FSOObj - идентификатор переменной, может называться как угодно, хоть cmd1234, и в JS, и в VBS

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 15:23 06-04-2018
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с проблемой! Есть батник, котором %1 - путь к папке с программой:
 

Код:
@Echo Off
Set Make=Sample.xls Image.exe Data\Data3.dat Data\*.bak Save\*.sav "Profiles\User 2" Temp
For %%A in (%Make%) do (
Echo %%~A
Pause
... любые другие команды...
)

 
по сути батник должен обрабатывать файлы в папке и подпапках программы (путь %1) при их обнаружении. В переменной %Make% указывается перечень файлов, которые необходимо обработать. Но есть проблема - батник не выполняет обработку для файлов *.bak *.sav. После нескольких тестовых запусков батника без @Echo Off обнаружилось, что цикл For просто игнорирует входные параметры, в которых присутствует звёздочка *, то есть он сразу переходит к следующему параметру "Profiles\User 2" и вообще не выполняет для параметров со звездочкой * любые команды заключенные в скобки после do ( ... ).
 
Почему так происходит и как заставить его работать должным образом?
 
Вот наглядно. Выполнение для параметров со звездочкой * просто отсутствует:

Код:
C:\>Test.bat c:\Master
 
C:\>Set Make=Sample.xls Image.exe Data\Data3.dat Data\*.bak Save\*.sav "Profiles\User 2" Temp
 
C:\>For %A in (Sample.xls Image.exe Data\Data3.dat Data\*.bak Save\*.sav "Profiles\User 2" Temp) do (
Echo %~A
Pause
)
 
C:\>(
Echo Sample.xls
Press any key to continue . . .
)
 
C:\>(
Echo Image.exe
Press any key to continue . . .
)
 
C:\>(
Echo Data\Data3.dat
Press any key to continue . . .
)
 
C:\>(
Echo Profiles\User 2
Press any key to continue . . .
)
 
C:\>(
Echo Temp
Press any key to continue . . .
)

---------- ---------- ---------- ---------- ----------
 
Причину выяснил: при обработке параметра с * цикл for ищет данные файлы в текущей папке - бестолково, конечно, но как есть. Цикл for заключенный в конструкцию push %1 - popd избавился от недуга. Если есть ещё другой способ, прошу озвучить.

Всего записей: 55 | Зарегистр. 30-03-2017 | Отправлено: 21:29 08-04-2018 | Исправлено: A27, 17:44 09-04-2018
Smitis



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

Цитата:
почему названо "гибрид batch+js" - совершенно непонятно

Одно из принятых названий для таких файлов - гибридные.
 
Pasha_ZZZ

Цитата:
это батник, живущий в JS-комменте.

Скорее наоборот - js внутри батника (так как система запускает батник, а батник уже запускает js).

Цитата:
фиг знает только зачем

js может выполняться либо через wscript.exe либо через cscript.exe. Никогда не известно, через что настроен запуск на конкретной системе. Гибрид гарантирует запуск через консольный cscript.


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

Всего записей: 2409 | Зарегистр. 09-02-2003 | Отправлено: 21:33 08-04-2018 | Исправлено: Smitis, 21:34 08-04-2018
Sisin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто не встречал скрипт для контекстного меню картинок в Windows для поиска картинок в Яндекс.Картинках?? Прошу прощения за тавтологию))
 

Всего записей: 881 | Зарегистр. 07-05-2010 | Отправлено: 14:38 09-04-2018
rodovik



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

Всего записей: 793 | Зарегистр. 05-09-2011 | Отправлено: 02:39 11-04-2018 | Исправлено: rodovik, 13:00 13-04-2018
Voletho15



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

Код:
 
@echo off
setlocal EnableDelayedExpansion
 
set aimp=c:\program files\aimp3\aimp3.exe
set dir1=d:\dir1
set num=0
set list=
 
for /r "%dir1%" %%R in (
"*.mp3"
) do (
set /a num+=1
set list=!list! "%%R"
echo file[!num!]=%%~nxR
)
 
echo list=%list%
 
rem start "" "%aimp%" /add_play %list%
 
echo.
pause
exit /b
 
 

 
нужно:
чтобы cmd файл искал все файлы в определённой папке и определённым образом обрабатывал их ВКЛЮЧАЯ восклицательные знаки.
Если у меня в папке d:\dir1 есть файл с
super_track!.mp3
то команда for его видит как
super_track.mp3
без знака "!"
 
Можно ли как-то его (код) нормально обрабатывать так, чтобы она (команд for) нормально видела и обрабатывала все файлы?
 
Спасибо.

Всего записей: 122 | Зарегистр. 22-05-2017 | Отправлено: 22:04 12-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Voletho15
Б-г придумал плейлисты и папки не просто так...

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 22:07 12-04-2018
Voletho15



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
мне не именно для aimp, мне нужно схему знать

Всего записей: 122 | Зарегистр. 22-05-2017 | Отправлено: 22:23 12-04-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Voletho15
Если короткие имена в файловой системе не отключены - можно их использовать
Цитата:
%%~sR

Всего записей: 10071 | Зарегистр. 11-03-2002 | Отправлено: 22:26 12-04-2018
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Voletho15
Пока у Вас в коде присутствует "setlocal EnableDelayedExpansion" - файлы с восклицательным знаком в имени будут обрабатываться неправильно. Это generic свойство командного процессора Windows.
Если есть необходимость открыть список {произвольных} медиафайлов в AIMP через командную строку - сформируйте (тем же dir) список воспроизведения m3u (если что - обычный текстовик со списком файлов) и открывайте в плеере уже созданный список.
 
P.S. Ваш код, кроме всего прочего, не сможет корректно работать с файлами, в имени/пути которых содержатся пробелы...
 
P.P.S. Если речь вообще не об AIMP - сформулируйте задачу в более доходчивом виде...

----------
http://www.imho.ws

Всего записей: 1240 | Зарегистр. 12-10-2006 | Отправлено: 22:38 12-04-2018 | Исправлено: BorlandIMHO, 22:47 12-04-2018
Voletho15



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
 
Во 1-х списки воспроизведения m3u я учту и при случае буду применять
Во 2-х aimp я привёл для примера, мне нужно знать схему
В 3-х мне нужно найти способ чтобы я мог в cmd работать со списками файлов (и строкой и "вертикальным" списком как можно вывести командой >> ) и передавать их И как аргументы И соответственно в txt файлы.
 
Pasha_ZZZ

Цитата:
%%~sR

сейчас попробовал что-то неполучается, как можно включить/отключить в системе короткие имена?
 
 
Добавлено:
Например мне может обязательно понадобиться нумерация и поиск файлов, среди которых есть "!".
 
Если есть альтернативные (не очень сложные, я не программист) варианты реализации данной схемы пжлста поделитесь.
 
 
Добавлено:
BorlandIMHO

Цитата:
P.S. Ваш код, кроме всего прочего, не сможет корректно работать с файлами, в имени/пути которых содержатся пробелы...  

токо что проверил, вывод

Цитата:
file[1]=tra ck1.mp3
file[2]=tra ck4_.mp3
file[3]=track2.mp3
file[4]=track3_.mp3
 
list= "d:\di r1\tra ck1.mp3" "d:\di r1\tra ck4_.mp3" "d:\di r1\track2.mp3" "d:\d
i r1\track3_.mp3"

в аимп-е запускются все кроме файлов с "!"

Всего записей: 122 | Зарегистр. 22-05-2017 | Отправлено: 22:54 12-04-2018
BorlandIMHO

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

Схему чего?
"Вертикальный", как Вы выразились, список, можно тупо передавать программе через "трубу":
Код:
dir /s /b "d:\Any folder\*.mp3"| "x:\folder with\program that may process vertical list.exe"
Если программа может воспринимать такой список непосредственно...
"Решения вообще" не существует.
Наиболее распространено (насколько мне известно) свойство программ {прочитать файл из списка "одна строка для одного файла"} (тот же .m3u).
Если Вашей программе требуется на входе список в формате "Одна строка - разделители пробелы", то это уже совсем отдельная задача. При таких раскладах, по-хорошему, нужно ещё каждое имя файла заключать в отдельные кавычки (дабы сгладить присутствие пробелов в имени/пути файла).

----------
http://www.imho.ws

Всего записей: 1240 | Зарегистр. 12-10-2006 | Отправлено: 23:18 12-04-2018 | Исправлено: BorlandIMHO, 23:23 12-04-2018
   

Страницы: 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