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

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



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

Всего записей: 2653 | Зарегистр. 10-03-2006 | Отправлено: 21:01 11-06-2020
Fenrizz



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

Цитата:
for /f "delims=" %%N in ('dir /B /A:-D "x:\путь к папке\для обработки\*"') do start /w "" "y:\путь к\батнику.bat" "%%~fN"

 
В каком редакторе Вы редактируете батник? Мне кажется, что он заменяет обратные кавычки на какие-то другие, но в данном случае можно обойтись и без них.

Всего записей: 428 | Зарегистр. 12-09-2017 | Отправлено: 21:08 11-06-2020 | Исправлено: Fenrizz, 21:13 11-06-2020
JekaKot



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

Всего записей: 2653 | Зарегистр. 10-03-2006 | Отправлено: 21:18 11-06-2020
lexapass



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JekaKot
Проверьте кодировку если в путях используется кириллица и т.п.
А команду можно упростить.

Код:
for %%N in ("x:\путь к папке\для обработки\*.dgn") do start /w "" "y:\путь к\батнику.bat" "%%~fN"

Всего записей: 555 | Зарегистр. 11-10-2004 | Отправлено: 22:17 11-06-2020
JekaKot



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lexapass
работает без
Код:
start /w ""

 

Код:
for %%N in ("x:\путь к папке\для обработки\*.dgn") do "y:\путь к\батнику.bat" "%%~fN"

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

Всего записей: 2653 | Зарегистр. 10-03-2006 | Отправлено: 12:01 12-06-2020
insorg



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно, в этой теме кто-то может подсказать по поводу моего вопроса?
Всё-таки хоть и повершелька, но в батнике же будет жить...

Всего записей: 2225 | Зарегистр. 04-11-2010 | Отправлено: 11:03 15-06-2020
bytie

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg Берёте wget, собранный под винду и качаете. Параметр `--referer` не забудьте.

Всего записей: 263 | Зарегистр. 18-08-2005 | Отправлено: 11:18 15-06-2020
insorg



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

Всего записей: 2225 | Зарегистр. 04-11-2010 | Отправлено: 12:41 15-06-2020
YuS 2



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

Цитата:
Задача - обойтись без сторонних утилит, используя только голый повершелл.

Зачем вообще для него батник?
Ну, напишите батник для запуска:

Код:
@echo off
echo Выполняем...
powershell -nologo .\script.ps1
echo Готово.
pause

Рядом положите скрипт powershell script.ps1, всё.

Всего записей: 3202 | Зарегистр. 03-02-2009 | Отправлено: 14:34 15-06-2020
Fenrizz



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

Цитата:
@powershell -Command "$wc = New-Object System.Net.WebClient; $wc.Headers.Add('referer', 'https://drivers.amd.com/drivers/');  
  $wc.DownloadFile('https://drivers.amd.com/drivers/win7-radeon-software-adrenalin-2020-edition-20.4.2-may25.exe', $env:TEMP + '\win7-radeon-software-adrenalin-2020-edition-20.4.2-may25.exe')"

 
 
insorg

Цитата:
Возможно, в этой теме кто-то может подсказать по поводу моего вопроса?

По поводу Скайпа - как вариант bitsadmin редирект перехватывает
 

Цитата:
bitsadmin /transfer myDownloadJob /download /priority normal https://get.skype.com/go/getskype-skypeforwindows  %temp%\Skype_Desktop_Setup.exe  

 
 

Всего записей: 428 | Зарегистр. 12-09-2017 | Отправлено: 06:35 16-06-2020 | Исправлено: Fenrizz, 08:09 16-06-2020
insorg



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Цитата:
@powershell -Command "(New-Object Net.WebClient).DownloadFile('https://get.skype.com/go/getskype-skypeforwindows', '%temp%\Skype_Desktop_Setup.exe')"
С такой ссылкой на Win7 сработало. Спасибо.

Всего записей: 2225 | Зарегистр. 04-11-2010 | Отправлено: 15:14 16-06-2020
MihailM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть такой батник(пример) :
Цитата:
set  name=22_06_2020_083720
FOR /F "tokens=*" %%S in (%name%.txt) DO (  
name.exe -s %%S  >>%name%.txt
)
Вопрос , а как в то что на выходе записывается от программы name.exe , добавить свой текст в это же строчку ?
То есть на выходе получается(пример) :  
аааа
бббб
ввввв
гггггг
, а нужно чтоб было так(пример) :
аааа-name
бббб-name
ввввв-name
гггггг-name
, как это можно сделать ?
 

Всего записей: 2317 | Зарегистр. 19-10-2003 | Отправлено: 08:50 22-06-2020 | Исправлено: MihailM, 08:51 22-06-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
 
set  name=22_06_2020_083720  
 FOR /F "tokens=*" %%S in (%name%.txt) DO (  
 FOR /F "tokens=*" %%O in ('name.exe -s %%S 2^> nul') do (echo %%O some-text >> %name%.txt)
 )  
 

Всего записей: 428 | Зарегистр. 12-09-2017 | Отправлено: 11:16 22-06-2020 | Исправлено: Fenrizz, 11:31 22-06-2020
MihailM

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

Цитата:
 поменять местами на выходе значения :
name-аааа
name-бббб
name-ввввв
name-ггггг

Так же я думаю должно быть проще даже, или ошибаюсь ?!!!!

Всего записей: 2317 | Зарегистр. 19-10-2003 | Отправлено: 13:28 22-06-2020 | Исправлено: MihailM, 14:17 22-06-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
Насчёт проще - я тоже так думал, но ничего проще пока не нашёл
 
Знак "|" надо экранировать "^|"
 
А поменять местами  
do (echo some-text %%O >> %name%.txt)
 
Или, как вариант
 
set  name=22_06_2020_083720  
 FOR /F "tokens=*" %%S in (%name%.txt) DO (  
 echo | set /p="Hello World" >>%name%.txt  
 name.exe -s %%S  >>%name%.txt  
 )  

Всего записей: 428 | Зарегистр. 12-09-2017 | Отправлено: 14:29 22-06-2020 | Исправлено: Fenrizz, 14:49 22-06-2020
MihailM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz, ясно попробуем ..
спасибо !!!
 
Добавлено:
Всё сделал на основе старого батника , даже без экранирования этого знака "|" ,  добавил эту строчку  

Цитата:
echo | set /p="Hello World" >>%name%.txt  
перед командой для ехе-шника.  И всё заработало ..  
Не понял почему он ругался на тот знак "|", до этого ..Хотя я и не знал этой фишки , что вы дали в посл. примере ..
 
А так спасибо еще раз ..

Всего записей: 2317 | Зарегистр. 19-10-2003 | Отправлено: 16:01 22-06-2020 | Исправлено: MihailM, 18:37 22-06-2020
insorg



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В большом батнике - много операций с архивами 7z и rar, соответственно вывод в консоль превращается в длинную портянку.
Есть ли способ подавить такстовый вывод архиватора, когда всё хорошо? То есть, спрятать текст от архиваторов, кроме ошибок.
Помню, что-то мелькало типа конструкций 2>, но конкретно не соображу, а гуглить эти два символа - в принципе бесполезно...

Всего записей: 2225 | Зарегистр. 04-11-2010 | Отправлено: 19:17 29-06-2020
BorlandIMHO

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

Цитата:
что-то мелькало типа конструкций 2>

1>nul    
для примера - тестирование всех rar и 7z в папке "Загрузки" текущего пользователя:
Код:
@echo off
pushd "%UserProfile%\Downloads"
for /f "usebackq delims=" %%A in (`dir /b *.7z *.rar`) do 1>nul 2>&1 "c:\Program Files\7-Zip\7z.exe" t "%%~A" || echo "%%~A" iz Bad
popd

Будут выводиться только имена сбойных файлов.
Только учтите: для запароленных архивов архиватор имеет привычку спрашивать пароль. И наткнувшись на таковой - будет ждать ввода пароля. А поскольку весь вывод собственно архиватора отправлен в dev/nul - ждать будет молча...
 
UPD: Натурное испытание на файлопомойке выявило ещё один "косяк" - с многотомными .rar с "новым форматом наименования" (.partXXX.rar): на все куски кроме первого будет ругаться (логично, ибо при тестировании не с первого куска - ошибка "нет начала архива"). Обойти наверняка можно, но думать над этим мне сейчас влом.

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

Всего записей: 1269 | Зарегистр. 12-10-2006 | Отправлено: 20:21 29-06-2020 | Исправлено: BorlandIMHO, 23:13 29-06-2020
KiloSub



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
  Не показывать стандартный вывод команды:
команда 1>nul или просто команда >nul
  Не показывать поток ошибок:
команда 2>nul
  Перенаправить поток ошибок в стандартный вывод:
команда 2>&1
и т.п.

Всего записей: 419 | Зарегистр. 30-05-2020 | Отправлено: 20:37 29-06-2020 | Исправлено: KiloSub, 20:39 29-06-2020
Sinclair83

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

Код:
2>nul 1>&2

, например как в этой команде:

Код:
TASKKILL /F /IM cmd.exe /T 2>nul 1>&2

это должно подавить вывод от TASKKILL.
 

Цитата:
а гуглить эти два символа - в принципе бесполезно...  

Здесь можно почитать.

Всего записей: 744 | Зарегистр. 07-01-2009 | Отправлено: 20:39 29-06-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