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

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

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

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 200 201

   

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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot1313
А сама-то Windows у Вас какая? x32 или x64? Мне кажется, какая-то "самопальная" сборка с торрента

Всего записей: 689 | Зарегистр. 12-09-2017 | Отправлено: 18:57 21-10-2021 | Исправлено: Fenrizz, 18:58 21-10-2021
GCRaistlin



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

Цитата:
в капиталистическом тырнете и про chkdsk is not available for ntfs drives
я упоминаний не встретил

Google дает три результата, в двух из которых упоминается про ulib.dll.
 

Цитата:
Батник с кодом который Вы написали я запускал из под проводника, а код запускал из консоли имеено как и Вы

Нужно было запускать оттуда, откуда запускали изначально. Это же очевидно вроде.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 18:58 21-10-2021
Smitis



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

Цитата:
Но можно проверить.

К слову, проще так:
where chkdsk.exe

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

Всего записей: 3439 | Зарегистр. 09-02-2003 | Отправлено: 20:55 21-10-2021 | Исправлено: Smitis, 20:55 21-10-2021
kot1313



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

Цитата:
А сама-то Windows у Вас какая? x32 или x64? Мне кажется, какая-то "самопальная" сборка с торрента  

Я ж писал на последних страницах, что у меня Типовая W7x64SP1ru. Если нужно, то Уточню - prof с обновлениями как минимум до конца 2019 года. Дальше не обновлял - незачем.

Цитата:
Нужно было запускать оттуда, откуда запускали изначально

Ну дак я так и делал ...
Мало того, Вы ведь сами написали откуда и как запустить. я в точности следовал Вашим указаниям.
Из консоли запустил без удвоения процентов и из проводника батник с удвоения процентов в коде ...
 
Добавлено:
Smitis

Цитата:
К слову, проще так:
where chkdsk.exe

У меня выдал 64битную версию в папке System32
(она то у меня как раз батником из под проводника и не пашет, о чем я писал выше)
Кстати, версии chkdsk.exe в x86 (в SysWOW64) и x64 (в System32) имеют разные размеры.
То есть это разные файлы.

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 23:47 21-10-2021 | Исправлено: kot1313, 01:26 22-10-2021
Smitis



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

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

В операционке x64 в папке System32 находятся нормальные x64 программы. Но только для нормальных x64 и "ненормальных" x32, которые знают про особенности системы x64. А для обычных программ x32 папка System32 будет содержать программы и библиотеки x32. Называется File System Redirector
Почему в TC x32 до сих пор не сделано отключение этого редиректа ответить может только Гислер. Наверное.
 
Если хотите запустить из TC x32 программу x64 используйте в пути вместо system32 - sysnative. Но проще, imho, перейти на TC x64.

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

Всего записей: 3439 | Зарегистр. 09-02-2003 | Отправлено: 00:06 22-10-2021 | Исправлено: Smitis, 00:09 22-10-2021
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Извините, но если Вы прочитаете мои предыдущие посты,  
то поймёте, что с батником в тоталале никаких проблем вообще не было - усё работало штатно.  
C TC любой разрадности.
 
Проблемы были тока при запуске батника из под проводника.  
Батник писал билиберду про недопустимость для дисков NTFS.  
 
Причина была в том, что, если в батнике не прописать абсолютный путь до исполняемого файла X86 версии,  
то батник из под проводника в моей операционке (у меня в Win7Sp1x64ru) инициирует запуск chkdsk.exe версии x64 из папки System32,  
который и выдаёт билиберду про про недопустимость для дисков NTFS.
 
Smitis
Fenrizz
GCRaistlin
Спасибо Вам за подсказки и разъяснения

На этом я думаю казус с этим батником можно считать закрытым.
А КОСЯКИ в работе chkdsk.exe к теме коммандной строки и батников не относится ...

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 02:42 22-10-2021 | Исправлено: kot1313, 02:48 22-10-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot1313
Дело не в батнике, а в том, что 64-разрядный chkdsk в вашей системе почему-то отказывается работать. Кстати, а с FAT-дисками (флешкой) у него как?

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 08:55 22-10-2021
kot1313



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

Цитата:
FAT-дисками (флешкой) у него как

флешки FAT проверяет нормально

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 13:05 22-10-2021
GCRaistlin



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

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 13:17 22-10-2021
A27

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

Код:
chkdsk.exe d: /f > CON
 
chkdsk.exe d: /f > file.txt

 
 
И ещё вопрос. Если делаю так:  
 

Код:
chcp 1251
chkdsk.exe d: /f > file.txt

 
то при открытии file.txt в блокноте вместо русских символов вижу иероглифы.
 
Как сделать читаемую кодировку?

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 19:09 26-10-2021 | Исправлено: A27, 19:29 26-10-2021
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27 topic.cgi?forum=5&topic=50615&start=1000#4

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

Всего записей: 5220 | Зарегистр. 23-04-2009 | Отправлено: 19:18 26-10-2021
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000, это не одновременный. Тут сначала пишется в файл, затем выводится на экран. Поадекватнее способа нет? Например, продублировать устройство вывода или по-другому как-то?

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 19:26 26-10-2021 | Исправлено: A27, 19:30 26-10-2021
GCRaistlin



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

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 19:32 26-10-2021
BorlandIMHO

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

Цитата:
Как реализовать одновременный вывод на экран и в файл?  

Следующий пост за приведённым Inoz2000, утилита tee http://forum.ru-board.com/topic.cgi?forum=5&topic=50615&start=1000#5

Цитата:
Как сделать читаемую кодировку?

Поменять шрифт/кодировку в "Блокноте"?..
Или сразу поменять средство просмотра на что-то более интуитивное...


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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 19:58 26-10-2021
mithridat1



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

Цитата:
A27
 
Цитата:
Как реализовать одновременный вывод на экран и в файл?  
 
Следующий пост за приведённым Inoz2000, утилита tee http://forum.ru-board.com/topic.cgi?forum=5&topic=50615&start=1000#5

В свое время искал нормальный виндовый порт tee, в итоге подошел только бинарник из этого проекта https://github.com/WinLAFS/wintee

Всего записей: 5025 | Зарегистр. 05-01-2006 | Отправлено: 22:47 26-10-2021
BorlandIMHO

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

Цитата:
искал нормальный виндовый порт tee, в итоге подошел только бинарник из этого проекта

"Нормальность порта" - понятие сугубо относительное.
Судя по изменённому названию "нормального порта" - это не "порт" родной никсовой tee, а утилита со схожим функционалом, но имеющая некие существенные функциональные отличия от прародительницы.
Предпочитаю всё-таки иметь дело с оригиналом, дабы иметь одинаковый результат функционирования утилиты независимо от ОС...
Вы бы хоть обозначили, в чём его коренное отличие от других портов, делающее его лучшим...

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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 00:16 27-10-2021
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
mithridat1
 
Мне необходимо это реализовать без внешних утилит. На данный момент использую такой способ:
 

Код:
@Echo Off
If exist Test.txt Del Test.txt
For /f "Tokens=*" %%A in ('Label /?') do Call :A "%%A"
Exit
:A
ChCP.com 1251
>>Test.txt Echo.%~1
ChCP.com 866

 
Но For здесь не очень удобен из-за громоздкости и ещё он пропускает пустые строки. К тому же приходится использовать Call т.к. заключённые в скобки цикла команды не преобразуют символы в кодировку 1251.
 
Любопытно, что вывод в 1251 работает только у построчных команд. Так например, следующий вариант не работает:
 

Код:
ChCP.com 1251
Type Test1.txt>Test2.txt
ChCP.com 866

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 06:37 27-10-2021 | Исправлено: A27, 06:47 27-10-2021
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, A27
VBScript/JScript/HTA?

Код:
Set FSO =  CreateObject("Scripting.FileSystemObject")
Set oInStr = FSO.GetStandardStream(0)
Set oOutStr = FSO.GetStandardStream(1)
Set oOutFile = FSO.OpenTextFile (WScript.Arguments.Item(0),2,True)
While Not oInStr.AtEndOfStream
  sInStr = oInStr.ReadLine
  oOutStr.WriteLine(sInStr)
  oOutFile.WriteLine(sInStr)
Wend
 

dir | cscript 1.vbs 1.txt

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 07:38 27-10-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27
Используйте Powershell и Tee-Object. Файл будет в кодировке UTF-8.
 

Код:
powershell "& """C:\Program Files\WinRAR\rar.exe""" | tee-object -filepath C:\Test\rar.txt"

Всего записей: 689 | Зарегистр. 12-09-2017 | Отправлено: 07:55 27-10-2021 | Исправлено: Fenrizz, 07:56 27-10-2021
mithridat1



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

Цитата:
"Нормальность порта" - понятие сугубо относительное.
Судя по изменённому названию "нормального порта" - это не "порт" родной никсовой tee, а утилита со схожим функционалом, но имеющая некие существенные функциональные отличия от прародительницы.
Предпочитаю всё-таки иметь дело с оригиналом, дабы иметь одинаковый результат функционирования утилиты независимо от ОС...
Вы бы хоть обозначили, в чём его коренное отличие от других портов, делающее его лучшим...

Вообще, для портированных приложений "оригинальность" и "одинаковый результат функционирования утилиты независимо от ОС" очень спорные атрибуты. Крайне редко встречаю абсолютно идентичные и одинаковые по функционалу и поведению порты с *Nix на Windows. В первую очередь это обусловлено обилием непереносимой специфики, из-за чего для портирования нередко используют Cygwin, увеличивающий суммарный размер приложения из-за дополнительных библиотек. Для меня наиболее красноречивый пример якобы "оригинального" порта это шапочный набор UnxUtils.zip (GNU utilities for Win32), где стандартные юниксовые утилиты большей частью представлены в сильно кастрированном виде и ими невозможно нормально пользоваться (то есть также как в *nix). К примеру, полноценные порты awk или sed на самом деле по размеру превышают суммарный вес всего этого набора утилит.
 
Что касается tee то сразу не вспомню чем оттолкнул "оригинал". В CoreUtils обращает на себя внимание наличие дополнительных библиотек и неумение нормально работать с кириллицей (да, прилагаются локали, но их еще надо как то установить). Гораздо удобнее когда приложение работает без всяких зависимостей/настроек и его можно легко перенести и запустить на другой системе.

Всего записей: 5025 | Зарегистр. 05-01-2006 | Отправлено: 21:21 27-10-2021 | Исправлено: mithridat1, 21:24 27-10-2021
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru