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

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

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

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

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



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

Цитата:
в переменную %%u  ничего не выводится
спасибо за первый отзыв о работе скрипта. Честно, первый раз такое слышу, что команда type ничего не выводит.

Цитата:
do @ECHO f|REN    - стоит знак конвейера, что означает  направить букву f для команды  REN в качестве аргумента или ответа на запрос  
Может сэр Inoz2000  всё-таки пояснит, что тут делается или должно делается?
схерали? я могу повторить: — 'это не мой код.'

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

Всего записей: 3913 | Зарегистр. 23-04-2009 | Отправлено: 18:57 27-05-2022
Propretor



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

Цитата:
переход в каталог , в котором находится сам  батник

Лишнее действие, как я понимаю, если батник запускается из текущего каталога. К тому же есть проще обращение - %CD%. Это текущая директория.
 

Цитата:
CMD /c "for /f "delims=" %%u in ('type utf.tmp') do @ECHO f|REN "%%a" "%%u" > nul"
ту мне непонятно

Вот и я о том же, зачем второй запуск командного процессора и что такое ECHO f, если f не описана ранее, да и значение у нее %f%, а не просто f... а нужно переименование, то есть команда REN. Но без @ECHO f реально не работает, я проверял.
 
 
 
Добавлено:
Inoz2000

Цитата:
схерали? я могу повторить: — 'это не мой код.'

Ну даже если и не ваш код, выже по-любому лучше меня знаете язык командных файлов, неужели код настолько недокументирован, что даже нет версии о том, как же это работает?

Всего записей: 335 | Зарегистр. 12-03-2003 | Отправлено: 09:00 28-05-2022
qenq99

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

 

Всего записей: 20 | Зарегистр. 29-12-2014 | Отправлено: 17:21 01-06-2022 | Исправлено: qenq99, 14:25 02-06-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
qenq99  Постановка задачи  как у первоклассника.
1 - что в твоем понимании  adapter name ?
2 - что значит читал отсюда?  Передача  параметра в батник устроит? То это будет переменная  %1
 
test.cmd     имя_адаптера
 
@echo off
setlocal enableextensions enabledelayedexpansion
SET ADAPTERNAME=%1  
ECHO %ADAPTERNAME%
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11293 | Зарегистр. 10-12-2003 | Отправлено: 18:33 01-06-2022 | Исправлено: ipmanyak, 18:35 01-06-2022
qenq99

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

Цитата:
ipmanyak
Постановка задачи  как у первоклассника.
1 - что в твоем понимании  adapter name ?
2 - что значит читал отсюда?  Передача  параметра в батник устроит? То это будет переменная  %1  

Во-первых не стоит преувеличивать с первоклассником  
Меня вы не знаете!
В понимании adapter name нет другого понимания кроме как сама за себя говорит
Читал Отсюда - это означает, чтоб можно было записать туда имя адаптера которое надо найти и переименовать
 
 
 

Всего записей: 20 | Зарегистр. 29-12-2014 | Отправлено: 19:39 01-06-2022 | Исправлено: qenq99, 19:41 01-06-2022
tirex2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня, подскажите как правильно прописать кавычки, чтобы работал  
Код:
IF EXIST "%SystemDrive%\Users\User\" (
start /wait "c:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"
)

В таком виде запускает просто cmd.

Всего записей: 63 | Зарегистр. 09-12-2004 | Отправлено: 12:37 10-06-2022 | Исправлено: tirex2k, 12:38 10-06-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tirex2k справка  всё объясняет
start /?
START ["заголовок"] ....   - первые данные в кавычках берет для заголовка  окна
 
вот так работает:

Код:
 
IF EXIST "%SystemDrive%\Users\User\" (
start "запуск excel"  /wait "c:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"
)  
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11293 | Зарегистр. 10-12-2003 | Отправлено: 12:52 10-06-2022 | Исправлено: ipmanyak, 12:52 10-06-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tirex2k
start "" /w ......

Всего записей: 11057 | Зарегистр. 11-03-2002 | Отправлено: 12:52 10-06-2022
tirex2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, ipmanyak  Спасибо
Заголовок использовал только для запуска без ожидания закрытия запущеного процесса.
А так без "IF" всегда работало start /wait "c:\1 2.exe"

Всего записей: 63 | Зарегистр. 09-12-2004 | Отправлено: 13:14 10-06-2022
GCRaistlin



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

Цитата:
А так без "IF" всегда работало start /wait "c:\1 2.exe"

Просто "c:\1 2.exe" даст тот же результат.

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

Всего записей: 3551 | Зарегистр. 18-04-2005 | Отправлено: 13:23 10-06-2022
Roman_Hayretdinov



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

Код:
for %A in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do if not exist %A: subst %A: [диск:]путь к папке & exit

Подозреваю, что этот код - корявый и дубовый

Всего записей: 58 | Зарегистр. 19-12-2021 | Отправлено: 12:54 12-06-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Roman_Hayretdinov
Проще не получится. Можно сделать длиннее, но эффективнее. Например, получить существующие диски через
Цитата:
wmic logicaldisk get caption
и перебрать до первой несуществующей сначала/с конца.

Всего записей: 11057 | Зарегистр. 11-03-2002 | Отправлено: 13:19 12-06-2022
GCRaistlin



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

Цитата:
Можно сделать длиннее, но эффективнее.

С wmic - только длиннее и НЕэффективнее. Пока он раскочегарится...
 
Roman_Hayretdinov
if exist не детектирует недоступные диски (CD-привод без диска).

Код:
 
for %%A in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do 2>nul pushd %%A: && popd || subst %%A: C:\Dir
 

Кстати, для служебных целей можно использовать и такие "буквы":
` ~ @ # $ ( - _ = + { } [ ] : ' . 0 1 2 3 4 5 6 7 8 9
В Проводнике такие диски видно не будет, но из комстроки с ними работать можно.
 
Добавлено:
Roman_Hayretdinov
Вернее, вот так:

Код:
 
for %%A in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do 2>nul pushd %%A: && popd || (subst %%A: C:\Dir&& goto :out)
:out
 

 
Добавлено:
Хотя, с другой стороны, что pushd, что if exist... Главное - обязательно проверять код возврата subst.

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

Всего записей: 3551 | Зарегистр. 18-04-2005 | Отправлено: 14:55 12-06-2022 | Исправлено: GCRaistlin, 15:06 12-06-2022
Pasha_ZZZ



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

Цитата:
НЕэффективнее

Бредятина. Зато через него получим настоящий список.
А если уж все равно проверять код возврата - то нафига ваще эти пуши и попы. Сабст с проверкой более чем достаточно.

Всего записей: 11057 | Зарегистр. 11-03-2002 | Отправлено: 16:00 12-06-2022
GCRaistlin



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

Цитата:
Бредятина. Зато через него получим настоящий список.

"Эффективность" и "настоящий список" - не одно и то же.
 

Цитата:
Сабст с проверкой более чем достаточно.

В принципе, да, но с проверкой будет немного быстрее.
 
Добавлено:
Кстати, wmic дисков типа $: тоже не видит, так что список будет не совсем настоящий.

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

Всего записей: 3551 | Зарегистр. 18-04-2005 | Отправлено: 17:16 12-06-2022 | Исправлено: GCRaistlin, 17:51 12-06-2022
Fenrizz



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

Всего записей: 573 | Зарегистр. 12-09-2017 | Отправлено: 19:19 12-06-2022 | Исправлено: Fenrizz, 19:21 12-06-2022
Roman_Hayretdinov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Цитата:
Проще не получится. Можно сделать длиннее, но эффективнее. Например, получить существующие диски через
Код:
wmic logicaldisk get caption

Можно ещё использовать команды:

Код:
echo list volume | diskpart

либо

Код:
fsutil fsinfo drives

Но как это повысит эффективность? По-моему, в данном случае слепой перебор букв алфавита лучше, проще и быстрее. Поправьте меня, если ошибаюсь
 

Всего записей: 58 | Зарегистр. 19-12-2021 | Отправлено: 11:08 14-06-2022 | Исправлено: Roman_Hayretdinov, 11:11 14-06-2022
Pasha_ZZZ



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

Всего записей: 11057 | Зарегистр. 11-03-2002 | Отправлено: 11:36 14-06-2022
anynamer



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

Код:
 
<script type="text/javascript">
ЛЮБОЙ ТЕКСТ ДО
</script>
 

 
Мог бы удалить без регов, но дело в том, что текст между тегами ява-скрипта меняется. Надо удалить всё начиная от <script type="text/javascript"> и заканчивая </script>.

Всего записей: 2114 | Зарегистр. 17-05-2010 | Отправлено: 16:15 24-06-2022
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
anynamer
<script type="text\/javascript">.*?<\/script>

Всего записей: 2989 | Зарегистр. 16-06-2007 | Отправлено: 16:46 24-06-2022
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru