Команди bat-файлів. Як створити bat-файл? Базові команди
Bat-файли Windows є зручним способом виконання різних завдань на ПК, яким активно користуються комп'ютерні умільці. Вони дозволяють автоматизувати повсякденні завдання, скоротити час їх виконання і перетворити складний процес у щось посильне пересічному користувачеві. У даній статті представлені базові можливості командних файлів та рекомендації щодо самостійного їх написання.
Але екрані з'явиться напис: "Ласкаво просимо в сценарій пакетної обробки! Для продовження натисніть будь-яку клавішу" У разі якщо bat-файл не запускається, користувачі рекомендують зайти в регістр і видалити ключ: "HKEY_CURRENT_USERSoftwareMicrosoftwindowscurrentversionexplorerfileexts.BATUserChoice". Не варто думати, що це все, на що здатні сценарії пакетної обробки. Параметрами скриптів є змінені версії команд командного рядка, тому користувач обмежений тільки їх можливостями. А вони досить великі.
в HTML, тобто створює заголовок для пакетного скрипта у вікні командного рядка. 3. Call викликає один bat-файл з іншого або підпрограми усередині одного сценарію. Наприклад, функція power обчислює ступінь %2 числа %1: @echo off call :power 3 3 echo %result% goto :eof :power setlocal set counter=%2 set prod=%1 :loop if %counter% gtr 1 ( set /a prod*=%1 set /a counter-=1 goto :loop ) endlocal & set result=%prod% goto :eof 4. Cls очищає командний рядок. Використовується для того, щоб попередній висновок стороннього коду на завадив перегляду ходу виконання поточного скрипта. 5. Color задає колір шрифту і фону. Наприклад, команда color f9 задає білі літери на синьому фоні. Команда без параметра відновлює установки за замовчуванням. 6. Echo служить для виводу інформації, а також включення (echo on) або вимикання (echo off) такого висновку. Наприклад, команда echo. виводить новий рядок без крапки, а echo . – точку. Без параметрів команда виводить на екран інформацію про свій поточний статус – echo on або echo off.
7. Rem забезпечує ту ж функціональність, що і тег ERRORLEVEL число – перевірка код завершення останньої виконаної інструкції на відповідність або перевищення вказаного числа. При цьому 0 означає успішне виконання завдання, а будь-яке інше число, звичайно позитивне, повідомляє про помилку. Наприклад, можна використовувати вкладені команди для точного визначення коду завершення: if errorlevel 3 if not errorlevel 4 echo сталася помилка №3. String1 == строка2 – перевірка збігу двох рядків. Наприклад, при відсутності зовнішнього параметра команда if "%1"= ="" goto ERROR передасть керування мітці ERROR. EXIST ім'я – перевірка існування файлу з вказаним ім'ям. Наприклад, if not exist A:program.exe COPY C:PROJECTSprogram.exe A: копіює програму program.exe на диск А, якщо її там немає. 12. Else повинна знаходитися в одному рядку з командою If. Вказує на необхідність виконання наступної інструкції, якщо вираз виявиться помилковим. 13. For використовується для повторення певних дій з кожним членом списку. Має формат for %%аргумент in (список) do команда. Аргументом може бути будь-яка буква від A до Z. Список являє собою послідовність рядків, розділених пробілами або комами. Символи узагальнення також можуть використовуватися. Наприклад: for %%d in (A, C, D) do DIR %%d – послідовно виводить на екран директорії дисків А, С і D; for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f – друкує вміст всіх .txt, .bat - і .doc-файлів у поточній директорії; for %%P in (%PATH%) do if exist %%P*.BAT COPY %%P*.BAT C:ВАТ – копіює всі пакетні файли, які існують у всіх каталогах маршруту пошуку в папку З:ВАТ. 14. Двокрапка (:) перед словом утворює з нього посилання, яка дозволяє пропускати частину програмного коду або повертатися назад. Використовується з командами Call і Goto, вказуючи, з якого місця слід продовжувати виконання bat-файлу, наприклад, при виконанні певної умови: goto label :label 15. Змінні: %%a позначає кожен файл у папці; %CD% – поточна директорія; %DATE% – системна дата, формат якого залежить від локалізації; %TIME% – системний час у вигляді ЧЧ:ММ:СС.мм.; %RANDOM% – згенероване псевдовипадкове число в діапазоні від 0 до 32767; %ERRORLEVEL% – код завершення повертається останньої виконаної командою або php-скриптом. Вилучити частину рядка, яка міститься в змінної, при відомому її положенні і довжині можна так: %[переменная]:~[начало],[длина]%. Наприклад, показати дату у форматі ДД/ММ/РРРР як РРРР-ММ-ДД можна так: echo %DATE:~64%-%DATE:~32%-%DATE:~02%. 16. (". ") – коренева папка. При роботі з консоллю перед зміною імені файлу, його видаленням і т. д. необхідно направити дію команди в конкретний каталог. При використанні пакетного файлу достатньо запустити його в будь-якому потрібному каталозі. 17. %цифра – приймає значення параметрів, що передаються користувачем в bat-файл. Можуть розділятися пробілом, комою або крапкою. «Цифра» являє собою число від 0 до 9. Наприклад, %0 приймає значення поточної команди. %1 відповідає першому параметру і т. д. 18. Shift – команда, використовувана для зсуву вхідних параметрів на одну позицію. Застосовується, коли пакетного файлу передаються зовнішні аргументи. Наприклад, наступний bat-файл копіюються на диск D файли, задані в якості параметрів в командному рядку: :next copy %1 D: shift if not (%1)==() goto next Крім того, з аргументами можна робити наступні маніпуляції: %~ – видалити навколишні лапки; %~f – розширити параметр до повного імені дорозі разом з іменем диска; %~d – показати ім'я диска; %~p – відобразити тільки шлях; %~n – виділити з параметра тільки ім'я файлу; %~x – залишити лише розширення; %~s – перетворити шлях до подання з короткими іменами; %~a – отримати атрибути файлу; %~t – вивести дату і час створення; %~z – відобразити розмір файлу; %~$PATH: – здійснює пошук у каталогах, перелічених у змінній оточення PATH, і розширює параметр до першого знайденого відповідного повного імені або ж видає пустий рядок в разі невдачі.
Автоматизація – це просто
Як створити bat-файл? Для цього потрібно виконати наступні дії: В будь-якому текстовому редакторі, наприклад, Notepad або WordPad, створити текстовий документ. Записати в нього свої команди, починаючи з @echo[off]а потім (кожен раз в новому рядку) – title[название пакетного скрипта], echo[сообщение, которое будет выведено на экран]та pause. Зберегти текст в електронному документі з розширенням.bat (наприклад, test.bat). Для запуску слід двічі клацнути по тільки що створеному пакетного файлу. Щоб його змінити, необхідно клацнути на ньому правою кнопкою миші і з контекстного меню вибрати пункт «Змінити». Необроблений файл буде виглядати приблизно так: @echo off title Це ваш перший скрипт bat-файлу! echo Ласкаво просимо в сценарій пакетної обробки! pause Більш детально про командах bat-файлів і їх використання мова піде нижче.Крок 1: створення програмного скрипта
Припустимо, що у вас часто виникають проблеми з Мережею. Він постійно користується командним рядком, набираючи ipconfig і пингуя Google усунення неполадок в Мережі. Через якийсь час користувач розуміє, що було б набагато ефективніше, якби він написав простий bat-файл, записав його на свій USB-накопичувач і використовувати його на комп'ютерах, які він діагностує.Створення нового текстового документа
Пакетний файл спрощує виконання на комп'ютері повторюваних завдань за допомогою командного рядка Windows. Нижче наведено приклад скрипта, який відповідає за відображення на екрані деякого тексту. Перед тим як створити bat-файл, слід клацнути правою кнопкою миші на порожньому місці в каталозі і вибрати пункт «Створити», а потім «Текстовий документ».Додавання коду
Подвійне клацання на цьому новому текстовому документі відкриє прийнятий за замовчуванням текстовий редактор. Можна скопіювати і вставити наведений вище приклад коду в текстову запис.Збереження
Вищезгаданий скрипт виводить на екран текст «Ласкаво просимо в сценарій пакетної обробки!». Електронний документ необхідно записати, вибравши пункт меню текстового редактора «Файл», «Зберегти як», а потім вказати бажане ім'я bat-файлу. Його слід завершити розширенням .bat (наприклад, welcome.bat) і натиснути «ОК». Для правильного відображення кирилиці в деяких випадках слід упевнитися в правильному виборі кодування. Наприклад, при використанні консолі русифікованої системи Windows NT документ необхідно зберегти в CP866. Тепер слід двічі клацнути на ярлику bat-файлу, щоб активувати його.Але екрані з'явиться напис: "Ласкаво просимо в сценарій пакетної обробки! Для продовження натисніть будь-яку клавішу" У разі якщо bat-файл не запускається, користувачі рекомендують зайти в регістр і видалити ключ: "HKEY_CURRENT_USERSoftwareMicrosoftwindowscurrentversionexplorerfileexts.BATUserChoice". Не варто думати, що це все, на що здатні сценарії пакетної обробки. Параметрами скриптів є змінені версії команд командного рядка, тому користувач обмежений тільки їх можливостями. А вони досить великі.
Крок 2: знайомство з деякими командами
Якщо користувач ПК знайомий з тим, як слід виконувати команди консолі DOS, то він буде майстром створення програмних скриптів, тому що це один і той же мову. Рядки в bat-файли повідомлять інтерпретатору cmd.exe все, що від нього вимагається. Це економить час і сили. Крім того, є можливість задати деяку логіку (наприклад, прості цикли, умовні приписи і т. д., які концептуально схожі з процедурним програмуванням).Вбудовані команди
1. @echo – це команда bat-файлів, яка дозволить побачити роботу скрипта в командному рядку. Вона використовується для перегляду ходу виконання робочого коду. Якщо у пакетного файлу виникають які-небудь проблеми, то дана команда дозволяє швидко локалізувати проблеми. Додавання off дає можливість швидко завершити виконання коду, уникаючи виведення потрібної інформації на екран. 2. Title надає ті ж можливості, що і тегв HTML, тобто створює заголовок для пакетного скрипта у вікні командного рядка. 3. Call викликає один bat-файл з іншого або підпрограми усередині одного сценарію. Наприклад, функція power обчислює ступінь %2 числа %1: @echo off call :power 3 3 echo %result% goto :eof :power setlocal set counter=%2 set prod=%1 :loop if %counter% gtr 1 ( set /a prod*=%1 set /a counter-=1 goto :loop ) endlocal & set result=%prod% goto :eof 4. Cls очищає командний рядок. Використовується для того, щоб попередній висновок стороннього коду на завадив перегляду ходу виконання поточного скрипта. 5. Color задає колір шрифту і фону. Наприклад, команда color f9 задає білі літери на синьому фоні. Команда без параметра відновлює установки за замовчуванням. 6. Echo служить для виводу інформації, а також включення (echo on) або вимикання (echo off) такого висновку. Наприклад, команда echo. виводить новий рядок без крапки, а echo . – точку. Без параметрів команда виводить на екран інформацію про свій поточний статус – echo on або echo off.
7. Rem забезпечує ту ж функціональність, що і тег ERRORLEVEL число – перевірка код завершення останньої виконаної інструкції на відповідність або перевищення вказаного числа. При цьому 0 означає успішне виконання завдання, а будь-яке інше число, звичайно позитивне, повідомляє про помилку. Наприклад, можна використовувати вкладені команди для точного визначення коду завершення: if errorlevel 3 if not errorlevel 4 echo сталася помилка №3. String1 == строка2 – перевірка збігу двох рядків. Наприклад, при відсутності зовнішнього параметра команда if "%1"= ="" goto ERROR передасть керування мітці ERROR. EXIST ім'я – перевірка існування файлу з вказаним ім'ям. Наприклад, if not exist A:program.exe COPY C:PROJECTSprogram.exe A: копіює програму program.exe на диск А, якщо її там немає. 12. Else повинна знаходитися в одному рядку з командою If. Вказує на необхідність виконання наступної інструкції, якщо вираз виявиться помилковим. 13. For використовується для повторення певних дій з кожним членом списку. Має формат for %%аргумент in (список) do команда. Аргументом може бути будь-яка буква від A до Z. Список являє собою послідовність рядків, розділених пробілами або комами. Символи узагальнення також можуть використовуватися. Наприклад: for %%d in (A, C, D) do DIR %%d – послідовно виводить на екран директорії дисків А, С і D; for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f – друкує вміст всіх .txt, .bat - і .doc-файлів у поточній директорії; for %%P in (%PATH%) do if exist %%P*.BAT COPY %%P*.BAT C:ВАТ – копіює всі пакетні файли, які існують у всіх каталогах маршруту пошуку в папку З:ВАТ. 14. Двокрапка (:) перед словом утворює з нього посилання, яка дозволяє пропускати частину програмного коду або повертатися назад. Використовується з командами Call і Goto, вказуючи, з якого місця слід продовжувати виконання bat-файлу, наприклад, при виконанні певної умови: goto label :label 15. Змінні: %%a позначає кожен файл у папці; %CD% – поточна директорія; %DATE% – системна дата, формат якого залежить від локалізації; %TIME% – системний час у вигляді ЧЧ:ММ:СС.мм.; %RANDOM% – згенероване псевдовипадкове число в діапазоні від 0 до 32767; %ERRORLEVEL% – код завершення повертається останньої виконаної командою або php-скриптом. Вилучити частину рядка, яка міститься в змінної, при відомому її положенні і довжині можна так: %[переменная]:~[начало],[длина]%. Наприклад, показати дату у форматі ДД/ММ/РРРР як РРРР-ММ-ДД можна так: echo %DATE:~64%-%DATE:~32%-%DATE:~02%. 16. (". ") – коренева папка. При роботі з консоллю перед зміною імені файлу, його видаленням і т. д. необхідно направити дію команди в конкретний каталог. При використанні пакетного файлу достатньо запустити його в будь-якому потрібному каталозі. 17. %цифра – приймає значення параметрів, що передаються користувачем в bat-файл. Можуть розділятися пробілом, комою або крапкою. «Цифра» являє собою число від 0 до 9. Наприклад, %0 приймає значення поточної команди. %1 відповідає першому параметру і т. д. 18. Shift – команда, використовувана для зсуву вхідних параметрів на одну позицію. Застосовується, коли пакетного файлу передаються зовнішні аргументи. Наприклад, наступний bat-файл копіюються на диск D файли, задані в якості параметрів в командному рядку: :next copy %1 D: shift if not (%1)==() goto next Крім того, з аргументами можна робити наступні маніпуляції: %~ – видалити навколишні лапки; %~f – розширити параметр до повного імені дорозі разом з іменем диска; %~d – показати ім'я диска; %~p – відобразити тільки шлях; %~n – виділити з параметра тільки ім'я файлу; %~x – залишити лише розширення; %~s – перетворити шлях до подання з короткими іменами; %~a – отримати атрибути файлу; %~t – вивести дату і час створення; %~z – відобразити розмір файлу; %~$PATH: – здійснює пошук у каталогах, перелічених у змінній оточення PATH, і розширює параметр до першого знайденого відповідного повного імені або ж видає пустий рядок в разі невдачі.
Знаки знаки
Багато команд беруть шаблони імен файлів – знаків, які дозволяють установити відповідність з групою імен файлів. До подстановочным знаків відносяться: * (зірочка) – означає будь-яку послідовність символів; ? (знак питання) – замінює один (або 0) знак, відмінний від точки (.). Наприклад, команда dir *.txt виводить список txt-файлів, а dir ???.txt – перелік текстових документів, довжина яких не перевищує 3 літер.Функції
Як і підпрограми, вони емулюються з допомогою команди call, setlocal, endlocal і міток. Наступний приклад демонструє можливість визначення змінної, в якій зберігається результат, в рядку виклику: @echo off call :say result=world echo %result% exit /b :say set %1=Hello %2 exit /bОбчислення
В bat-файли можна виконувати прості арифметичні операції з цілими 32-бітними числами і бітами за допомогою команди set /a. Максимальним підтримуваним числом є 2^31-1 = 2147483647 а мінімальним– -(2^31) = -2147483648. Синтаксис нагадує мову програмування Сі. До арифметичних операторів відносяться: *, /, %, +, -. В bat-файл % (залишок цілочисельного ділення) повинен вводитися як "%%". Оператори з двійковими числами інтерпретують як число 32-бітну послідовність. До них відносяться: ~ (побітове або доповнення), & (І), | (АБО), ^ (виключає АБО), (зсув вліво), (зсув вправо). Логічним оператором заперечення є ! (знак оклику). Він змінює 0 на 1 і ненульове значення 0. Оператором комбінування служить , (кома), яка дозволяє виробляти більше число операцій в одній команді set. Об'єднані оператори присвоювання + = - = у виразах a+=b і a-=і відповідають виразами a=a+b і a=a-b. Так само працюють і *=, %=, /=, &=, |=, ^=, =, =. Пріоритет операторів наступний: (); %+-*/; , ; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, =, =; , Літерали можна вводити у вигляді десяткові, шістнадцяткові (з провідними 0x) і вісімкових чисел (з ведучим нулем). Наприклад, set /a n1=0xffff присвоює n1 шістнадцяткове значення.Зовнішні команди
Exit використовується для виходу з консолі DOS або (з опцією /b) тільки поточного bat-файлу або підпрограми. Ipconfig – це класична консольна команда, яка виводить інформацію про мережі. Вона включає MAC - і IP-адреси і маски підмережі. Ping пінг IP-адресу, надсилаючи до нього пакети даних, щоб оцінити його віддаленість і час очікування (відгуку). Також використовується для завдання паузи. Наприклад, команда ping 127001 –n 6 зупиняє виконання коду на 5 с. Бібліотека команд bat-файлів величезна. На щастя, в Мережі є безліч сторінок, в яких всі вони перераховані, поряд зі змінними пакетного скрипта.Крок 3: запис і запуск bat-файлу
Наступний скрипт набагато спростить щоденну онлайн-активність. Що робити, якщо є бажання миттєво відкрити всі свої улюблені новинні сайти? Оскільки скрипти використовують команди консолі, то можна створити сценарій, який відкриває кожну новинну стрічку в одному вікні браузера. Далі слід повторити процес створення bat-файлу, почавши з порожнього текстового документа. Для цього необхідно клацнути правою кнопкою миші на порожньому місці в папки і вибрати пункт «Створити», а потім – «Текстовий документ». Після відкриття файла потрібно ввести наступний скрипт, який запускає основні російськомовні засоби масової інформації, які доступні в Інтернеті: @echo off start "" http://fb.ru start "" http://www.novayagazeta.ru start "" http://echo.msk.ru start "" http://www.kommersant.ru start "" http://www.ng.ru start "" http://meduza.io start "" https://news.google.com/news/?ned=ru_ru&hl=ru Даний скрипт містить команди start ", які відкривають кілька вкладок. Можна замінити запропоновані посилання будь-якими іншими на вибір. Після введення скрипта слід зайти в меню редактора «Файл», а потім «Зберегти як» і записати документ з розширенням .bat, змінивши параметр «Тип файлу» на «Всі файли (*. *). Після збереження для запуску скрипта досить двічі клацнути на ньому. Веб-сторінки миттєво почнуть завантажуватися. При бажанні можна розмістити цей файл на своєму робочому столі. Це дозволить отримати миттєвий доступ до всіх улюблених сайтів.Організатор
Якщо завантажувати кілька файлів в день, то незабаром у папці «Завантаження» їх скопятся сотні. Можна створити скрипт, який впорядкує їх за типом. Досить помістити .bat-файл з програмою в папку з неорганізованими даними і двічі клацніть його для запуску: @echo off rem Кожен файл у папці for %%a in (".*") do ( rem перевірити на наявність розширення і неналежність до даного скрипта if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" ( rem перевірити наявність папки для кожного розширення, і якщо її немає, то створити if not exist "%%~xa" mkdir "%%~xa" rem перемістити файл у папку move "%%a" "%%~dpa%%~xa" )) В результаті файли в директорії «Завантаження» сортуються по папках, назви яких відповідають їх розширення. Це так просто. Цей пакетний скрипт працює з будь-яким типом даних, будь то документ, відео або аудіо. Навіть якщо ПК не підтримує їх, сценарій все одно створить папку з відповідною міткою. Якщо вже є каталог JPG або PNG, то програма просто перемістить туди файлів з цим розширенням. Це проста демонстрація того, на що здатні пакетні скрипти. Якщо якусь нескладну задачу необхідно виконувати знову і знову, будь то упорядкування файлів, відкриття декількох веб-сторінок, масове перейменування або створення копій важливих документів, пакетний сценарій допоможе виконати стомлюючу роботу за пару кліків.Цікаво по темі
Як в Linux створити файл у командному рядку
Як в Linux створити файл у командному рядку: покрокова інструкція по створенню файлу. Також у статті розповідає про те, як працювати з терміналом.
Налаштування Cron: особливості, покрокова інструкція та відгуки
Опис роботи і налаштування планувальника завдань для Linux Cron. Інструкція, основні параметри, налаштування та відгуки.
Три способи, як перейменувати файл в Linux
Кожна операційна система має на увазі під собою взаємодію з файлами. Нерідко користувачеві доводиться стикатися з потребою у перейменування файлу. На
Команди для командного рядка Windows. Список використовуваних основних команд для командного рядка
Сьогодні багато використовують графічний інтерфейс Windows для спілкування з комп'ютером на зрозумілій ...
CMD-команди: список, опис та застосування
Командний рядок - це спеціальна програма, включена в інструментарій операційної системи. З її допомогою ...