![]() ![]() |
||||||||||||||||
1 | ||||||||||||||||
Каталог простых примеров решенных задач BAT/CMD, с чего начать (■■■ основная тема ■■■)14.10.2012, 22:28. Просмотров 357087. Ответов 41
Метки @echo off, batch file, call, command line processor, enabledelayedexpansion, enableextensions, path, каталог примеров bat/cmd (Все метки)
Тема создана для размещения "классических" примеров решения
только самых распространенных задач, предназначенных как для новичков, так и в роле справки (напоминания) для профессионалов. Правила и особенности темы
Что требуется от пользователей
При размещении примера следует:
Все темы, побывавшие в шапке: Список тем
Обсуждение сложных кодов, команд и синтаксиса* Тестирование полезных скриптов *** Перечень изменений и новшеств в закрепленных темах Предложения по совершенствованию раздела и закреплению в "ВАЖНЫЕ" новых тем Windows Resource Kit BAT/CMD файлы (полезные скрипты от bombus) Обсуждение сложных кодов, команд и синтаксиса* Ключи запуска программ, вспомогательные утилиты (Windows Resource Kit, Support Tools) Тонкости языка, редкие команды и сложные скрипты Полезные BAT/CMD скрипты Каталог простых примеров решенных задач BAT/CMD, с чего начать (■■■ основная тема ■■■) Robocopy — описание и примеры использования, XCOPY, HoboCopy Коды возврата ошибок (расшифровки ErrorLevel)* Наиболее частые ошибки, заметки особенностей программинга BAT файлов, баги интерпретатора* Литература, учебники, пособия по CMD/BAT, список команд Русский текст в консоли FAQ по файлам BAT/CMD Командные сценарии-гибриды Перекодировка текста (сборник кодов для различных кодовых страниц) ******************** Перечень категорий и задач: ******************** С чего начать
Архиваторы и операции с ними
Автозапуск
Автоматизация
13
|
|
14.10.2012, 22:28 | |
Как задать вопрос на форуме Batch и выделить свой код? (■■■ Кто первый раз в этом разделе ■■■)
Lenovo G500 (LA-9632 rev 1.0) не включается Lenovo G500 (LA-9632) - Сильно греется хаб |
|
![]() ![]() |
|
14.10.2012, 22:28 [ТС] | 2 |
Аргументы запуска бат-файла (параметры)
Визуализация и интерфейс
Дата, время
3
|
![]() ![]() |
||||||
14.10.2012, 23:02 [ТС] | 3 | |||||
Диски, разделы и устройства
Защита и безопасность
Интернет, локальная сеть, Email, FTP, IP-адрес, Ping
4
|
![]() ![]() |
|
14.10.2012, 23:02 [ТС] | 4 |
Кодировка
Комбинированные бат-файлы
Математические (арифметические) операции
Операционная система и другие устройства
2
|
![]() ![]() |
|
14.10.2012, 23:02 [ТС] | 5 |
Память, версия ОС, конфигурация компьютера
Переменные, массивы, передача параметров (аргументов)
Потоки, перенаправление, конвеер Site Статья
Процессы
3
|
![]() ![]() |
|
14.10.2012, 23:02 [ТС] | 6 |
Реестр
Специальные символы и особенности синтаксиса
Текстовые операции
3
|
![]() ![]() |
|
14.10.2012, 23:02 [ТС] | 7 |
Циклические операции (часть см. в «Файловые операции)
Файловые операции
2
|
![]() ![]() |
|
14.10.2012, 23:02 [ТС] | 8 |
Фильтрация
Resource Kit ссылка
Программы сторонних разработчиков
Windows GUI-программы и др. встроенные утилиты (параметры ком. строки) Ключи запуска программ, вспомогательные утилиты (Windows Resource Kit, Support Tools)Компиляторы:
Альтернативные командные интерпретаторы
Сценарии для чистого DOS 6.22
Принятые сокращения
MSDN - сайт Майкрософт (ссылка загрузки/ статья базы знаний) Offsite - официальный сайт автора Source - SourceForge или страница с исходным кодом Site - статья на другом форуме ALink - быстрый переход к месту в сообщении из этой темы ссылка - ссылка на другую тему VBS - решение на языке Visual Basic Script Особая благодарность администраторам, модераторам и пользователям, без которых создание этой темы было бы невозможно, чьи полезные ответы, постоянные подсказки и советы, активное участие в помощи для раздела Batch позволили создать этот каталог: mik-a-el, sov44, Anonymоus, bombus, Ris, gimntut, atributz, Isn, FraidZZ, Smitis, Charles Kludge, Badger, Somebodyи еще многие-многие-многие..., кого я не упомянул, и кто радовал своими знаниями, и пополнит наши ряды в будущем.
2
|
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
|
|
15.10.2012, 04:35 | 9 |
Код
:: Получение даты\времени независимо от региональных настроек и формата For /F "skip=1 tokens=1-6" %%A In ( 'wmic Path Win32_LocalTime Get Year^,Month^,Day^,Hour^,Minute^,Second /format:table' ) Do ( Echo Date in DD.MM.YYYY format: %%F.%%D.%%A Echo Time in HH.MM.SS format: %%B:%%C:%%E ) :: Получение даты\времени из переменных, рассчитано на де-факто стандартные :: на большинстве русскоязычных PC hh:mm:ss,ms и dd.mm.yyyy For /F "tokens=1-6 delims=:., " %%A In ("%date% %time%") Do ( Echo Date in DD.MM.YYYY format: %%A.%%B.%%C Echo Time in HH.MM.SS format: %%D:%%E:%%F ) Самое простейшее: Код
ping google.ru -n 1 -w 1000>nul&&(Echo OK)||(Echo Check your connection) Использование: iconv --help Пример: Код
iconv -f UTF-8 -t CP866 < 866.txt > 65001.txt Код
TaskList /FO:CSV|Find /I "firefox.exe">nul&&(Echo Firefox is running!)||(Echo Firefox not started taskkill /? Код
TaskKill /IM "firefox.exe" Знак процентов - удвоение. * Пример c переменной: Set Progress=95%% * Пример с файлом: Echo 50%%>file.txt Пайп, перенаправление, объединение команд - экранирование через "^" * Пример с переменной: Set "String=te^>st" * Пример с файлом: Echo ^<^>^|^&>file.txt Символ экранирования: * Пример с переменной: Set "String=te^^st" * Пример с файлом: Echo ^^>file.txt %Переменная:Текст для замены=На что меняем% Код
Set Text=12345679 Set Text=%Text:9=8% Echo %Text% Код
@Echo Off Set i=0&For /F "usebackq" %%A In ("%~nx0") Do (Set /A i+=1) Echo "%~nx0": %i% strings Pause>Nul Отправлено в личку. Для подсчета символов в ansi-файлах можно просто запросить их размер в байтах через модификатор z (For /?) Если использовать внешние утилиты, то: Код
@Echo Off Set i=0&For /F "eol=" %%A In ('grep -Eo "." "%~nx0"') Do (Set /A i+=1) Echo "%~nx0": %i% characters Pause&Exit Код
@Echo Off Set Char=a Set i=0&For /F "eol=" %%A In ('grep -Eo "%Char%" "%~nx0"') Do (Set /A i+=1) Echo "%~nx0": %i% characters [%Char%] Pause&Exit
7
|
![]() ![]() |
|
16.10.2012, 06:30 [ТС] | 10 |
Удалить файл или папку с некорректным именем
Удалить папку Bash rmdir /s "\\.\com\" Bash del /f "\\.\com"
2
|
![]() ![]() |
||||||||||||||||||||||||||||||||||||
12.11.2012, 09:17 [ТС] | 11 | |||||||||||||||||||||||||||||||||||
Работа с переменной (урезание части строки, замена):
Bash Set /p X=<file.txt echo %x%
Удаление ярлыков с рабочего стола (для Win XP и для Win7 обеих локализаций (англ, рус)
Поместить программу в автозапуск Bash set proga=c:\tools\MyNotepad.exe REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyProg /t REG_SZ /d "%proga%" /f
5
|
886 / 188 / 16
Регистрация: 18.07.2011
Сообщений: 260
|
||||||
07.12.2012, 09:15 | 12 | |||||
\Диски и разделы\Смонтировать папку (удаленный сетевой ресурс) на диск и назначить удобное имя
Иногда нужно открыть временный доступ множеству пользователей в сети к какой-нибудь сетевой папке. Удобнее всего подключать сетевую папку как сетевой диск, но тогда имя сетевого диска может иметь вид: budget$ на "Сервер с важными и не очень документами, которые храняться во временных сетевых папках (s1)" (X:) Простому пользователю это название мало что скажет, а вот "Бюджет 2013 (X:)" более простое и ясное название для сетевого диска. В сети с Active Directory можно поместить следующий скрипт в автозагрузку при входе в систему.
Чтобы пользователь не запускал скрипт постоянно, можно поставить :yes вместо :no в 6 строке. Возможно у пользователя уже есть сетевой диск X:, но указывающий на другую сетевую папку. Тогда нужно раскомментировать строку 5. А если хочется, чтобы сетевой диск открылся сразу после подключения, то раскомментировать строку №8.
1
|
886 / 188 / 16
Регистрация: 18.07.2011
Сообщений: 260
|
|||||||||||
13.12.2012, 16:07 | 13 | ||||||||||
Модификаторы значения аргумента.
Как аргумент передается путь к объекту (файлу или папке). Пример вызова: ![]() batnik.bat
Те же правила используются внутри цикла, например:
0
|
![]() ![]() |
|||||||||||
23.12.2012, 04:23 [ТС] | 14 | ||||||||||
Получить случайное число в пределах ...
Мы знаем, что переменная %RANDOM% выводит значение в области от 0 до 32767, а что если нам нужно диапазон уже, к примеру от -50 до 50? Вот решение:
2
|
1635 / 344 / 41
Регистрация: 15.10.2012
Сообщений: 532
|
||||||
29.12.2012, 15:07 | 15 | |||||
Вывод текста без переноса на новую строку (другой вариант)
1
|
![]() ![]() |
|||||||||||
17.01.2013, 22:31 [ТС] | 16 | ||||||||||
Сравнение без учета регистра букв
Для сравнения значений переменных между собой без учета регистра, - добавим ключ /i к команде if
1
|
![]() ![]() |
||||||
18.01.2013, 00:46 [ТС] | 17 | |||||
Подпрограмма вычисления степени числа
2
|
Pure Free Digital Ghost
4211 / 1671 / 323
Регистрация: 06.01.2013
Сообщений: 4,287
|
|||||||||||
22.01.2013, 18:43 | 18 | ||||||||||
Проверка на содержание подстроки в строке.
Код:
__________ Синтаксис:
В случае отсутствия строки или подстроки выводит соответствующее сообщение. Добавлено через 21 минуту ПыСы. Работает долго, поэтому не для использования внутри цикла Добавлено через 2 минуты А может просто ноут тормозит о_0
2
|
Pure Free Digital Ghost
4211 / 1671 / 323
Регистрация: 06.01.2013
Сообщений: 4,287
|
||||||||||||||||
23.01.2013, 19:12 | 19 | |||||||||||||||
А что это? Виртуальная машина с х64?
Определение длины строки (более скорый вариант) Требования
КОД
Синтаксис
Используемые имена переменных и меток Во избежание некорректной работы вашей программы нельзя использовать переменные counter_0121 и string_q12e, а также метки :strlength и :again_r0067 Добавлено через 55 минут P.S. Пока писал - заметил: Проценты раскрываются раньше восклицательных знаков!
1
|
![]() ![]() |
||||||||||||||||
23.01.2013, 19:28 [ТС] | 20 | |||||||||||||||
да нет, обычная Win7 x64. Просто запускал с AkelPad-a. который в свою очередь запущен с x64-редакции Total Commander. Вот наверно и подхватило другую среду. Хотя SysWOW64 - это вообще 32-разрядная папка. Странно, на рабочем компе это не воспроизводится.
![]() Да есть такое. Поэтому, если нужно получить значение переменной, имя которой частично или целиком состоит из значения другой переменной, такой порядок и используем:
Используя Setlocal в подпрограмме и вот такой трюк, можешь избавится от этого недостатка: Пример:
2
|
23.01.2013, 19:28 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Как скопировать файл в системный каталог посредством cmd/bat
Приложение, генерирующее примеры, а в конце выдающее счетчик правильно решенных примеров Batch (CMD/BAT) несколько заданий на CMD/BAT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |