Бат файл: Как создать пакетный файл BAT для выполнения в командной строке CMD — Starus Recovery

Содержание

Как создать пакетный файл BAT для выполнения в командной строке CMD — Starus Recovery

Batch (.bat) файл — это инструмент, который сэкономит вам не один десяток часов рабочего времени. Узнайте сейчас как использовать пакетный файл на практике.

Пакетный (BAT, batch) файл представляет собой инструмент, с которым сталкивался практически каждый пользователь Windows. Документ помогает выполнить ряд действий буквально парой кликов, а их список ограничивается лишь силой воображения и кодовым функционалом. Давайте разберем инструмент подробнее.


Содержание статьи:



Что такое BAT файл?

Вы, должно быть, уже в курсе о существовании такой утилиты как “Командная строка” Windows, или CMD. Она работает путем ввода команд в качестве входных данных и обрабатывает их, проводя нужные операции с компьютером. Тем не менее, несмотря на всю полезность инструмента, командная строка устраивает далеко не всех. Сложность утилиты и высокий порог вхождения делают ее “последним средством спасения Windows”.

 

Чтобы упростить процесс работы и сделать его более быстрым, Microsoft ввели посредника между “человеком” и “машиной”. Этим посредником стал пакетный файл (batch file). Запущенный на компьютере документ автоматически выполняет команды в CMD, ограждая пользователя от собственноручной работы. Процесс автоматизации назван пакетным сценарием (batch script).

Доступные форматы BAT файла:

Вне зависимости от того какой формат выбран при создании документа, функции от этого не изменятся.

В чем польза BAT файла?

Автоматизация. Если раньше вам приходилось долго и нудно “вбивать” сложные коды в окно командной строки, пришло время расслабиться! BAT файл экономит время пользователя не только при работе с CMD, но и при взаимодействии с другими системами ПК. Например, вы можете запланировать выключение компьютера через определенный промежуток времени. Этот способ применения пакетного файла хорошо подойдет геймерам, ставящим установку игру на ночь.

Запланируйте отключение системы к моменту завершения установки и не опасайтесь за перерасход электроэнергии.

Если же вы разработчик программного обеспечения, обратите внимание на возможность автоматизации при установке вашего приложения. Таким образом повысится не только удобство для конечного пользователя, но популярность вашего софта.

При создании BAT файла используется петля (for), условный оператор (if) и оператор управления (goto). Документ запускается либо с помощью командной строки, либо с помощью другого пакетного файла при использовании команды CALL.

Режимы BAT файла

Несмотря на то, что пакетный файл по умолчанию выполняет работу автоматически, вы можете настроить его так, что при выполнении конкретной операции он будет запрашивать подтверждение. Например, при вводе команды на отключение службы Windows, BAT файл спросит вас, уверены ли вы в своем решении. Этот режим называется интерактивным (interactive).

Другой режим называется пакетным (batch mode). Он работает в классическом стиле и самостоятельно выполняет запрограммированные функции.

Режимы пакетного файла:

  • Интерактивный.
    Полуавтоматический режим. Программа может запрашивать подтверждение операций.
  • Пакетный.
    Полная автоматизация работы.

Используйте разные режимы в зависимости от ситуации.

Как запустить BAT файл в Windows 10?

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

Чтобы открыть BAT файл с помощью командной строки, выполните следующее:

  • Откройте директорию в которой лежит пакетный файл.
  • Определите название файла.
  • Откройте командную строку.
  • Введите название документа с его расширением.
    Например:
    HelloWorld.bat

Способ запуска через командную строку приобретает ценность с ростом количества пакетных файлов. Если вы помните название и расширение нужного документа, вы откроете его даже когда забыли точную директорию.

Как создать BAT файл?

Эта тема разбита на 2 раздела, каждый из которых — ключевой при создании пакетного документа. Не зная основ и команд, нужных для формирования структуры, автоматизировать процесс работы невозможно.

Основы создания BAT файлов

Вы не сможете создать пакетный файл без изучения базовых команд. Каким бы он не был полезным и не помогал автоматизировать работу на ПК, непонимание основ станет серьезным препятствием. В этом разделе мы рассмотрим 5 базовых команд, которые вас в курс дела.

Базовые команды:

  • title
    Используется для создания заголовка. Отображается в верхней части окна командной строки.
  • echo
    Режим вывода команд на экран. При включении, командная строка выведет на экран сообщение о совершенном действии. При отключении, соответственно, сообщения пропадут. Обратите внимание, что вам придется контролировать статус
    echo
    . Если команда активирована на строке 2 и вы решили отключить ее на строке 22, 20 промежуточных строк будут содержать включенный режим вывода команд.
  • pause
    Используется для остановки процесса.
  • exit
    Позволяет закрыть командную строку.
  • cls
    Используется для очистки окна командной строки.
  • ::
    Позволяет добавить комментарий к действию пакетного файла. Команда является пассивной и не влияет на общую работу документа.

Представленные выше команды — базовые и присутствуют во всех версиях Windows. Дополнительные команды появляются при установке соответствующего программного обеспечения. Например, если вы хотите автоматизировать задачи браузера Google Chrome, введите соответствующий код под названием

chrome.

Используя эту информацию как фундамент для создания BAT файлов, вы можете автоматизировать любой процесс на ПК.

Руководство по созданию BAT файла

В этом разделе мы рассмотрим алгоритм создания пакетного файла, который подойдет для Windows 10, Windows 8.1, Windows 7 и даже для Windows XP.

1. Откройте Блокнот. При желании, воспользуйтесь альтернативой стандартному приложению — Notepad++.

2. С помощью команду echo off временно отключите комментарии, чтобы не засорять окно.

3. Введите заголовок title My First Bat File.

4. Добавьте комментарий This comment will not appear in the command prompt.
Следует отметить, что по умолчанию в командной строке отображается только английский язык. Тем не менее, комментарий может быть на любом другом. Он не будет отображаться в CMD и останется только в блокноте. Комментарий — ваша личная заметка, чтобы не потеряться в коде.

5. Введите команду echo Test file executed.

6. Далее введите I am too lazy to write commands by myself.

7. И, наконец, команда paust, чтобы обозначить завершение процесса.

8. Сохраните документ, изменив формат с .txt на .bat.

Готовый пакетный файл имеет два вида:

В окне блокнота:

В окне командной строки:

Мониторинг систем с помощью BAT файла

В предыдущем разделе мы рассмотрели основы и самый примитивный вариант BAT файла. Хотя его возможности достаточно широки — полный функционал CMD. Давайте рассмотрим, как с помощью пакетного файла можно провести мониторинг систем компьютера.

 

Отчет об энергопотреблении:

1. Откройте Блокнот и создайте новый документ.

2. Введите команду powercfg /energy и перейдите к следующей строке.

3. Введите команду C:\WINDOWS\system32\energy-report.html.

4. Сохраните документ с названием energyreport.bat.

Примечание:
Не забудьте изменить формат, иначе документ так и останется текстовым.
Важно:
BAT файлы категории POWERCFG откроются только в случае запуска от имени администратора.

Отчет о состоянии батареи:

1. Откройте

Блокнот и создайте новый документ.

2. Введите команду powercfg /batteryreport и перейдите к следующей строке.

3. Введите команду C:\Windows\System32\battery-report.html.

4. Сохраните документ под названием batteryreport.bat.

Примечание:
Не забудьте изменить формат, иначе документ так и останется текстовым.
Важно:
BAT файлы категории POWERCFG откроются только в случае запуска от имени администратора.

Модификация BAT файлов

Каждый пакетный файл можно изменить, открыв его с помощью блокнота. Дальнейшая же работа с ним зависит целиком от вашей фантазии и понимания чего конкретно вы хотите от компьютера. Команды можно привязать практически к каждой его функции.

Автоматизация работы и мгновенное получение нужной информации неизменно сэкономит часы вашей жизни. На первый взгляд может показаться “Что тут такого, ведь можно открыть командную строку, ввести код и получить аналогичный результат”. И в своей сути вы окажетесь правы. Но на долгом промежутке времени и при работе в режиме “дедлайн” каждая минута может оказаться решающей.

Примените полученные знания на практике и убедитесь насколько простой стала повседневная работа с компьютером. Любая информация всего в двух кликах от вас.
Надеемся, статья оказалась полезной и помогла разобраться в том что такое BAT файлы и как их настраивать.

 


Похожие статьи про восстановление данных:


Дата:

Теги: Windows, Диск, Компьютер, Ноутбук, Программа

Как изменить (редактировать) bat-файл (пакетный файл)

В предыдущей статье было показано и рассказано, как создать bat-файл (пакетный файл). В этой статье мы рассмотрим несколько способов, как открыть bat-файл для того, чтобы внести в него изменения. Всё не так просто, как может показаться на первый взгляд, так как батник исполняемый файл и при двойном клике по нему, он запускается на выполение. Поэтому для его редактирования нужно пойти на небольшие ухищрения, о которых и пойдёт речь ниже.

Первый способ редактирования bat-файла (открываем в Проводнике из контекстного меню)

Если кликнуть по иконке или по имени bat-файла правой кнопкой мыши, то выпадет контекстное меню. Как уже становится очевидным, для того, чтобы изменить bat-файл, нужно выбрать опцию «Изменить». После этого откроется текстовый редактор, в котором можно будет внести изменения и сохранить их. По умолчанию в Windows для этого открывается «Блокнот»:

Второй способ открытия bat-файла для редактирования (перетаскиваем из Проводника в текстовый редактор)

Этот способ требует большего числа манипуляций и большего мастерства владения мышкой. Итак:

  1. Открываем «Блокнот»
  2. Открываем «Проводник»
  3. Находим в «Проводнике» наш bat-файл, который будем редактировать
  4. Кликаем по нему левой кнопкой мыши и не отпускаем её, а тащим файл в окно «Блокнота»
  5. Отпускаем левую кнопку мыши, когда курсор будет в окне «Блокнота» (на конце курсора будет нарисован + в квадрате)

В общем, как-то так, как показано на картинке: =D

Третий способ редактирования bat-файла (средствами текстового редактора «Блокнот»)

Ну тут всё просто и понятно. После того, как «Блокнот» открыт, можно зайти в его меню «Файл» и выбрать опцию «Открыть» (или просто нажать Ctrl + O):

Дальше будет небольшая хитрость 😉

Находим папку, в которой лежит наш батник и обязательно меняем опцию показа фалов на «Все фалы (*.*)». Если этого не сделать, в окне «Открыть» мы не увидим нашего bat-файла, а значит, не сможем его открыть. Дальше можно кликнуть по файлу два раза или выбрать его и нажать на кнопку «Открыть»:

Итог:

Любой из описанных способов приведёт к открытию bat-файла в текстовом редакторе, в котором можно будет внести в него изменения. Обязательно после того, как изменения были внесены, нужно их сохранить. Для этого также нужно обратить внимание, чтобы стояла выбранной опция «Все файлы (*.*)» (иначе, наш «Блокнот» может сохранить изменённый файл, как текстовый, то есть с расширением .txt, а оно нам не надо, надо с расширением .bat).

Так и вносятся правки в bat-фалы — никакой магии. Надеюсь, что всё понятно. =)

Заберите ссылку на статью к себе, чтобы потом легко её найти 😉

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Основы BAT файлов

В этой статье:

  • Определение переменных
  • Переменные командной строки (параметры вызова bat-файла)
  • Оператор условия IF
  • Функции
  • Использование возвращаемых значений (обработка кода завершения программы)

Определение переменных

SET <Имяпеременной>=<Значениепеременной>

Оператор SET представляет собой расширение возможностей работы с параметрами в операционной системе. Он задает переменную, значение которой подставляется вместо ее имени при любом использовании этого имени между знаками процента. Так, если задано (переменная, которую требуют многие игры, использующие звуковую карту компьютера):

SET BLASTER=A220 I5 D1 P330

то при использовании в пакетном файле следующей конструкции:

ECHO %BLASTER%

на экран будет выведено «A220 I5 D1 P330». Переменные, определенные с помощью оператора SET называются переменными окружения среды (environment) и являются видимыми после выполнения до перезапуска DOS (если не изменять ее вручную в памяти). То есть, ее можно использовать из одного пакетного файла или программы после задания в другом. Наиболее известной является переменная PATH, представляющая собой набор путей для быстрого поиска файлов. Она задается в файле autoexec.bat.

Переменные командной строки
(параметры вызова bat-файла)

%<цифра 0-9>

Как и в любом языке, в языке пакетных файлов возможно использование переменных, полученных в качестве параметров bat-файла.

Всего может быть 10 одновременно существующих независимых переменных. Для написания сложных программ это довольно мало, хотя для обычной работы часто хватает и 3-4. Значение переменной равно значению соответствующего параметра из командной строки. Переменная %0 будет содержать имя .bat-файла и, если вы указали, путь к нему. То есть, если вы запустили файл abc.bat со следующими параметрами:

abc.bat a bc def

то переменная %0 будет содержать значение abc.bat, %1 будет содержать значение a, %2 будет содержать bc, а %3 — def. Это свойство широко используется для создания универсальных пакетных файлов при работе с повторяющимися операциями.

Чтобы получить более чем 10 переменных из командной строки, можно воспользоваться командой SHIFT.

Команда SHIFT позволяет использовать число параметров командной строки далее 10. Однако, при этом теряются соответственно более ранние параметры. Иными словами, команда SHIFT сдвигает все значения переменных на один шаг влево. То есть, переменная %0 будет содержать значение, содержавшееся до этого в переменной %1, а переменная %1 — значение переменной %2 до сдвига. Однако, данная операция является необратимой, то есть, невозможно сдвинуть переменные обратно.

Оператор условия IF

К счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения IF с метками.)

exit /b 1

)

rem Удаляем из аргумента все дефисы для упрощения обработки

set BUILDMODE=%BUILDMODE:-=%

if «%BUILDMODE%» == «debug» (

echo INFO: Устанавливаем debug-режим окружения

set CCFLAGS=/Od /MDd /Z7

) else (

echo INFO: Устанавливаем release-режим окружения

set CCFLAGS=/O2 /MD

)

На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:

if «%BUILDMODE%» == «debug» (

echo INFO: Устанавливаем debug-режим окружения

set OPTFLAGS=/Od

set CCFLAGS=%OPTFLAGS% /MDd /Z7

) else (

echo INFO: Устанавливаем release-режим окружения

set OPTFLAGS=/O2

set CCFLAGS=%OPTFLAGS% /MD

)

Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.

Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…%, будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe, либо использованием команды:

setlocal enabledelayedexpansion

в тексте самого bat-файла. Второй способ мне представляется более удобным – не очень здорово требовать от кого-то запуска твоего сценария с определенным параметром.

С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:

setlocal enabledelayedexpansion

if «%BUILDMODE%» == «debug» (

echo INFO: Setting up debug mode environment

set OPTFLAGS=/Od

set CCFLAGS=!OPTFLAGS! /MDd /Z7

) else (

echo INFO: Setting up release mode environment

set OPTFLAGS=/O2

set CCFLAGS=!OPTFLAGS! /MD

)

Вот теперь это почти полноценный if-then-else блок., иначе синтаксический анализатор путается…

Но в любом случае, это гораздо лучше безумного количества меток и переходов.

Функции

А можно создать в bat-файле функцию? Да, можно. Более того, иногда даже нужно. Правда, функциями это можно назвать условно.

Есть особый синтаксис команды call, который позволяет перейти на метку в этом же bat-файле с запоминанием места, откуда был произведен этот вызов:

call :метка аргументы

Возврат из функции производится командой:

exit /b [опциональный код возврата]

Ключ /b здесь очень важен: без него будет произведен выход не из функции, а из сценария вообще.

За подробностями наберите в командной строке:

call /?

exit /?

Что интересно, команда call с таким синтаксисом поддерживает рекурсивные вызовы с автоматическим созданием нового фрейма для переменных аргументов %0-%9. Иногда это может быть полезным. Вот классический пример рекурсивного подсчета факториала на командном языке:

@echo off

call :factorial %1

echo %RESULT%

exit

rem Функция для подсчета значения факториала

rem Вход:

rem %1 Число, для которого необходимо подсчитать факториал

rem Выход:

rem %RESULT% Значение факториала

:factorial

if %1 == 0 (

set RESULT=1

exit /b

)

if %1 == 1 (

set RESULT=1

exit /b

)

set /a PARAM=%1 — 1

call :factorial %PARAM%

set /a RESULT=%1 * %RESULT%

exit /b

Пример работы:

> factorial.bat 10

3628800

Использование возвращаемых значений
(обработка кода завершения программы)

Любая программа при завершении своей работы возвращает операционной системе код своего завершения. Принято при успешном завершении возвращать ноль, иначе — код ошибки. Иногда, или, вернее, часто, программа «сознательно» возвращает ненулевое значение для того, чтобы в пакетном файле можно было «узнать» некоторые подробности ее работы. Например, программа возвращает код нажатой клавиши, а .bat-файл по нему выполняет различные действия.

Каким же образом пакетный файл может узнать код завершения выполненной программы? Для этого предусмотрено ключевая переменная ERRORLEVEL.

Пример пакетного файла с errorlevel’ами:

@ECHO OFF

REM Запускаем программу prg1.exe

PRG1.EXE

REM Анализ кода завершения

IF ERRORLEVEL 2 GOTO FILENOTFOUND

IF ERRORLEVEL 1 GOTO WRITEERROR

IF ERRORLEVEL 0 GOTO EXITOK

GOTO ONEXIT

:FILENOTFOUND

ECHO Ошибка! Файл не найден!

GOTO ONEXIT

:WRITEERROR

ECHO Ошибка записи!

GOTO ONEXIT

:EXITOK

ECHO Программа завершена благополучно.

GOTO ONEXIT

:ONEXIT

Обратите внимание — анализ кода завершения начинается не с нуля, а с максимально возможного значения. Дело в том, что подобная проверка означает: «если errorlevel больше или равен значению, то…». То есть, если мы будем проверять, начиная с нуля, любое значение будет истинным на первой же строке, что неверно.

Это самая распространенная ошибка в подобного рода программах.

Как создать bat файл в Windows 7, 8

Bat файлы представляют собой текстовые документы, которые содержат в себе список последовательно выполняющихся команд (инструкций). Они могут быть очень простыми, что обычный пользователь может воспользоваться ими. В сегодняшней теме разберем, что такое батник, как создать bat файл в Windows 7, 8, а также рассмотрим пример пакетного файла.

Сисадмины (продвинутые пользователи) хорошо осведомлены о полезности бат файлов, но обычные пользователи не знакомы с ними, их пугает структура кода и запуск этого сценария. Это печально, поскольку многие отказываются от использования мощного инструмента для выполнения рутинных и повторяющихся задач. Bat файлы могут быть сложными, требуя профессиональных навыков программирования, и простыми.

Батник содержит одну или несколько строк команд, которые выполняются последовательно. Бат файлы имеют расширение (bat или cmd) и выполняются через интерфейс командного интерпретатора. Все команды можно вводить в cmd, но каждый раз вызывать командную строку Виндовс 7, 8 и прописывать код, является рутинной работой, поэтому проще создать bat файл.

Создание bat файла

Для создания батника потребуется текстовый редактор (блокнот, notepad ++) и список bat команд. Примерный алгоритм смотрите ниже.

1. Создайте текстовый документ, расширение которого txt. Нажмите правой кнопкой на пустой области проводника или другого места. Наведите на «создать» курсор мыши, затем из подменю выберите «текстовый документ». Задайте ему имя, к примеру, batnik.

2. Скачайте notepad ++, затем установите его. Откройте batnik.txt в notepad ++, выберите «кодировки», наведите курсор на «кодировки», «кириллица», нажмите на OEM 866. Проделайте этот шаг, если используете вывод  русских слов (пояснений) в сценарии, иначе Вы увидите кракозябры (не корректные символы). Далее  пропишите команды.  Например, скопируйте такой текст:

@echo off
echo Привет – тест bat файла
pause
dir c:\windows
pause

3. Сохраните документ, далее измените тип файла Windows на расширение bat.

4. Двойным щелчком запустите batnik.bat для выполнения последовательности команд. После того как bat файл исполнится, он автоматически закроется.

Еще вы можете запустить блокнот, нажать Win + R, ввести в строку notepad и кликнуть Enter. После прописывания кода, нажмите «файл», а затем «сохранить как».  В окне задайте путь сохранения, имя файла с расширением bat и щелкните «сохранить». Аналогичные действия проделайте с notepad ++ для изменения кодировки (шаг 2), если будите использовать русские символы.

Пример бат файла

Сейчас рассмотрим создание bat файла в Windows 7, 8, который дает сведения о сети, проверяет соединение с интернетом и наглядно показывает действие батников. Создайте бат файл и пропишите такие строки.

ECHO OFF
:: очиститель.
ECHO Сведения о подключениях.
:: вывод текста на экран, который идет после служебного слова ECHO.
IPCONFIG /ALL
:: распечатывает информацию о всех сетевых подключениях.
PAUSE
:: приостанавливает выполнение сценария, чтобы Вы могли просмотреть сетевую информацию.
PING yandex.ru
:: Пинг, проверяющий наличие (отсутствие) соединения с интернетом
ECHO Операция выполнена. Нажмите ввод!
:: вывод на экран слов после ECHO, которые знаменуют выполнение PING.
PAUSE
:: Эта последняя команда пишется, для того чтобы увидеть сведения о соединении. Если ее не было бы, тогда сценарий батника прекратился, и произошло закрытие окна.

На самом деле, примеров бат файлов для обучения, скачивания в сети есть огромное количество. Вам достаточно изучить синтаксис и команды, чтобы создать свой батник под свои нужды. Надеюсь, Вы поняли для чего нужны батники, и как создать bat файл в Windows 7,8.

Посмотрите еще статьи:

Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.

Практические приемы программирования в bat-файлах | windows

В статье рассматриваются примеры практического использования в bat-файлах команд for, echo, goto, определения функций, экранирования символов, определения каталога запуска и многое другое.

Мы все любим писать серьезные вещи на серьезных языках. Шаблоны, C++, Reflection, Perl и многое другое – вот то, что мы любим, то, чему посвящаем длинные сообщения в форумах, то, что снится нам по ночам.

Однако в нашей повседневной деятельности встречаются и вещи, которые не так интересны и интеллектуальны. Мы не очень любим говорить об этом, делаем вид, что Это – грязно, нечистоплотно и недостойно нашего внимания. Однако, приходит день, приходит час и перст Судьбы находит нас – нам надо написать еще один батничек… Иногда это запускалка для построения проекта, которая должна при ошибке компиляции скопировать логи на сетевой диск, иногда – запуск обновления исходных текстов из SVN. Иногда – что-нибудь еще.

К чему я это все? А к тому, что поговорим мы о полезных хитростях при написании файлов сценариев на встроенном командном языке Windows. К счастью, это занятие не является доминирующим в профессиональной деятельности автора, так что я не обязуюсь заполнить абсолютно все пробелы в данной области. Кроме того, рожденный ползать летать не может, и из cmd.exe, увы, не получится ни /usr/bin/perl, ни даже /bin/sh. Так что, все нижеприведенное – просто некоторые интересные факты из жизни файлов с расширением bat, на которые автор обратил внимание во время решения различных практических задач автоматизации.

Наш урок будет построен по сугубо практическому принципу, известному в народе как Cookbook. Иными словами, я не буду вдаваться в синтаксические и семантические дебри командного языка Windows, а лишь продемонстрирую его возможности (хотел написать «мощь», но все-таки передумал). Именно поэтому большинство следующих заголовков будет начинаться со слова «Как». Впрочем, для полноты по ходу развития событий будут даваться подробные комментарии, в том числе и по языковым конструкциям.

ПРЕДУПРЕЖДЕНИЕ

Практически все описанные здесь рецепты подойдут только для Windows 2000 и старше. Bat-язык Windows 9x, к счастью, можно считать почившим, так что здесь он не рассматривается. Более того, диалекты cmd.exe операционных систем Windows 2000, Windows XP и Windows Server 2003 также немного различаются. Все приведенное ниже создано и проверено на компьютере под управлением операционной системы Windows XP. За подробной информацией по различиям в реализации той или иной команды обращайтесь к [1].

Как экранировать символ?

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

  • Операторы перенаправления ввода-вывода <, >, >>.
  • Оператор конвейера |.
  • Операторы объединения команд ||, & и &&.
  • Оператор разыменования переменной %…%.

В случае если символ, относящийся к одному из таких операторов, должен быть включен в вашу команду в его литеральном смысле, вас ждут определенные неожиданности. Например, при выполнении вот такой строки

echo The ratio should be up to 10%

символ процента будет «съеден» интерпретатором, который решит, что это попытка вывода значения какой-то переменной. В случае со знаком процента решение довольно хорошо известно и состоит в удвоении этого символа:

echo The ratio should be up to 10%%

после чего все заработает так, как надо. Однако в других случаях все менее очевидно. Рассмотрим командный сценарий, который генерирует незатейливый HTML-файл:

@echo off
set OUTPUTFILE=%1
echo <html>                                  >%OUTPUTFILE%
echo <head>                                 >>%OUTPUTFILE%
echo <title>This is a greeting page</title> >>%OUTPUTFILE%
echo </head>                                >>%OUTPUTFILE%
echo <body>                                 >>%OUTPUTFILE%
echo Hello World!                           >>%OUTPUTFILE%
echo </body>                                >>%OUTPUTFILE%
echo </html>                                >>%OUTPUTFILE%

К сожалению, при попытке запуска этого «чуда инженерного разума» нас постигнет неудача в виде сообщения об ошибке «was unexpected at this time». —deliver-target=ftp://ftp.site.com

Помните лишь, что чудо-символ должен быть последним в строке – скажите «Нет!» концевым пробелам.

Как определить имя каталога, в котором находится запущенный командный файл?

Иногда сценарию надо знать полный путь к себе самому и/или к каталогу, в котором он находится. Это может понадобиться по разным причинам. Например, он должен достать из системы контроля версий исходники в каталог/src рядом с собой. Или, запускаются тесты из каталога/tests, и перед их запуском надо добавить каталог/bin в переменную PATH.

Можно, конечно, рассчитывать на то, что командный файл был вызван из того же каталога, где он находится, и тогда в качестве вышеупомянутогоможно использовать переменную окружения %CD% — полный путь к текущему каталогу. Однако любые допущения в нашем деле недопустимы (хороший каламбур, однако!). Поэтому приведу более надежное решение.

Прежде всего, вспоминаем, что переменная %0 в bat-файле соответствует нулевому аргументу командной строки, т.е. имени самого файла. После этого читаем скудную документацию для команды call:

call /?

и обнаруживаем, что при использовании нумерованных переменных %0-%9 можно использовать некоторые модификаторы:

%~1 — разворачивает %1, удаляя кавычки («)
%~f1 — разворачивает %1 в полный квалифицированный путь
%~d1 — разворачивает %1 в букву диска
%~p1 — разворачивает %1 в путь
%~n1 — разворачивает %1 в имя файла
%~x1 — разворачивает %1 в расширение файла
%~s1 — развернутый путь будет содержать только короткие имена
%~a1 — разворачивает %1 в атрибуты файла
%~t1 — разворачивает %1 в дату/время создания файла
%~z1 — разворачивает %1 в размер файла
%~$PATH:1 — Ищет в каталогах, перечисленных в переменной среды PATH, и разворачивает %1 в полное квалифицированное имя первого совпадения. Если имя переменной среды не определено, или если файл не найден, этот модификатор вернет пустую строку и, более того, модификаторы можно объединять для получения сложных результатов:

%~dp1       - разворачивает %1 в букву диска и путь
%~nx1       - разворачивает %1 в имя файла с расширением
%~dp$PATH:1 – ищет %1 в каталогах, перечисленных в переменной среды PATH, и разворачивает в букву диска
и путь к первому найденному файлу.
--deliver-target=ftp://ftp.site.com --deliver-source="%~dp0\bin"

Обратите внимание на использование кавычек – потенциально каталог может иметь в своем пути пробел. Кавычки избавят от проблем в этом случае.

ПРЕДУПРЕЖДЕНИЕ

Опасайтесь бездумного применения команды cd %~dp0 без проверки результата выполнения. Теоретически, эта команда должна сменить текущий каталог на каталог, в котором расположен командный файл. Как правило, это работает. Однако возможны неожиданности. Однажды был написан простой командный сценарий, задача которого была просто удалить все каталоги рядом с собой. В «свою» директорию он переходил как раз через cd %~dp0. Все было проверено на локальной машине – работало замечательно. После этого сценарий был помещен на файл-сервер, где ему и полагалось быть. Я зашел с помощью Far в сетевой каталог, и для контрольной проверки решил запустить файл еще раз. Дальнейшее словно в тумане. cmd.exe правильно определил местонахождение bat-файла: \\servername\sharename\directory. Однако при попытке сделать туда cd, он сказал, что UNC-пути в качестве текущих каталогов не поддерживаются и лучше он сменит текущий каталог на C:\WINDOWS… Это было действительно мудрое решение… Часть сценария, отвечавшая за удаление всех каталогов, сработала отлично – хорошо, что я успел вовремя остановить это безумие.

В тот день я узнал, что такое System Restore…

Как получить короткое (8.3) имя файла?

«А зачем? – спросите вы – Ведь мы живем в мире Интернета, Web-сервисов и NTFS с длинными именами файлов». Это действительно так, но иногда встречаются программы, которые отчаянно сопротивляются прогрессу, и в частности, не любят имен файлов и полных путей с пробелами. Одной из таких программ, кстати, является утилита build.exe из Windows DDK… В таких ситуациях спасает использование короткого, «беспробельного» DOS-имени для файла.

ПРЕДУПРЕЖДЕНИЕ

Доступ к файлу по короткому имени может быть не всегда возможен. На файловой системе NTFS создание коротких псевдонимов для файлов может быть отключено путем установки в единицу значения «NtfsDisable8dot3NameCreation» в ключе реестра «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem».

Итак, все же (в предположении, что надругательства над NTFS не было) – как? Внимательный читатель должен был заметить в предыдущем разделе, что при обращении к переменным %0 — %9 можно использовать префикс (расширенный путь будет содержать только короткие имена)

%~s1

который нам как раз мог бы помочь. Но есть засада – все эти полезные префиксы нельзя использовать с произвольной переменной окружения, а присваивание переменным %0 — %9 не поддерживается. К счастью, описываемые префиксы можно еще использовать с переменными цикла for, и это дает нам способ достичь требуемого результата. Например, вот так можно получить 8.3-путь к “Program Files”:

for /d %%i in ("%PROGRAMFILES%") do (
set PROGRAMFILESSHORT=%%~si
)
echo 8.> "%PROGRAMFILESSHORT%"

Этот и другие модификаторы можно использовать и с любой другой формой цикла for, подробнее о которых можно узнать из (см. также статью [1]):

for /?

Как перенаправить стандартный вывод в файл?

Плоха та короткая программа, которая не стремится стать большой. К сожалению, это правило применимо и к командным файлам Windows тоже – иногда bat-файлы вырастают до довольно больших размеров. Если при этом результат выполняемых команд должен журналироваться, то все становится совсем плохо – почти каждая строка имеет хвостик типа

echo Cleaning up the target directory >>%LOGFILE%
...
echo The target directory has been cleaned >>%LOGFILE%

Гораздо проще было бы перенаправить стандартный вывод в файл, чтобы все команды echo и вообще, все, что выводится на экран, автоматически попадали в журнальный файл. Сделать это можно следующим образом (рассмотрим на знакомом примере генерации HTML-файла):

@echo off
set OUTPUT=out.>

Здесь делается то же, что и раньше, но с перенаправлением стандартного вывода в файл out.html. Делается это простым способом – перезапуском сценарием самого себя. Сначала проверяется, не установлена ли переменная окружения STDOUT_REDIRECTED. Если она установлена, значит, сценарий уже перезапущен с перенаправленным выводом и можно просто продолжить работу. Если же переменная не установлена, то мы ее устанавливаем и перезапускаем скрипт (cmd.exe /c %0) с таким же набором параметров, что и исходная команда (%*) и перенаправленным в файл стандартным выводом (>%OUTPUT%). После завершения выполнения «перенаправленной» команды выходим.

Такое «единовременное» перенаправление имеет и еще один неочевидный плюс: файл открывается и закрывается только один раз, и всем командам и дочерним процессам передается дескриптор уже открытого файла. Во-первых, это чуть-чуть улучшит производительность (жизнь удалась – сроду бы не подумал, что буду когда-нибудь писать о производительности в bat-файлах). Во-вторых, это поможет избежать проблемы с невозможностью открыть файл для записи. Такое может случиться, если после выполнения одной из команд останется «висеть» какой-нибудь процесс. Он будет держать дескриптор интересующего нас файла и перенаправление вывода в этот файл для всех последующих команд провалится. Проблема может показаться надуманной, но однажды она украла у меня 2 часа жизни…

Как сложить два числа?

Краткий ответ – смотри:

set /?

Длинный ответ таков. В bat-файлах можно производить довольно-таки продвинутые вычисления – продвинутые не в сравнении с другими языками, а в сравнении с отсутствием возможности что-либо вычислить вообще. Вычисление осуществляется командой set, если она выполняется с ключом /a. Поддерживается практически полный набор операторов языка C, включая шестнадцатеричный модификатор 0x. Переменные окружения в выражении не обязательно заключать в знаки процента – все, что не является числом, считается переменной. Подробнее – все-таки в man set, тьфу, то есть в set /?. А здесь напоследок – просто несколько примеров.

@echo off
set ARG=1
rem Переменные окружения в выражении не обязательно заключать в %...%
set /a RESULT=ARG + 2
echo %RESULT%
 
rem Если выражение содержит какие-либо из символов non grata, надо
rem заключить его в кавычки
set /a RESULT="ARG << 2"
echo %RESULT%
 
rem Шестнадцатеричная арифметика
set /a RESULT=0x1234 + 0x6786
echo %RESULT%
 
rem И многое-многое другое...

А можно создать в bat-файле функцию?

Да, можно. Более того, иногда даже нужно. Правда, функциями это можно назвать условно. Есть особый синтаксис команды call, который позволяет перейти на метку в этом же bat-файле с запоминанием места, откуда был произведен этот вызов:

call :метка аргументы

Возврат из функции производится командой:

exit /b [опциональный код возврата]

Ключ /b здесь очень важен: без него будет произведен выход не из функции, а из сценария вообще. За подробностями обращайтесь к:

call /?
exit /?

Что интересно, команда call с таким синтаксисом поддерживает рекурсивные вызовы с автоматическим созданием нового фрейма для переменных аргументов %0-%9. Иногда это может быть полезным. Вот классический пример рекурсивного подсчета факториала на командном языке:

@echo off
call :factorial %1
echo %RESULT%
exit
 
rem Функция для подсчета значения факториала
rem Вход: %1 Число, для которого необходимо подсчитать факториал
rem Выход: %RESULT% Значение факториала
:factorial
if %1 == 0 (
set RESULT=1
exit /b
)
if %1 == 1 (
set RESULT=1
exit /b
)
set /a PARAM=%1 - 1
call :factorial %PARAM%
set /a RESULT=%1 * %RESULT%
exit /b

Пример работы:

> factorial.bat 10
3628800

Как можно избежать использования goto?

Любой хоть сколько-то осмысленный *.bat-файл длиной больше 50 строк является ярким лозунгом в поддержку работы Дейкстры [3]. Мешанина из переходов вперед и назад действительно является кодом «только для записи». Можно ли что-то предпринять по этому поводу?

На самом деле можно. Как правило, большинство меток и переходов используются для организации ветвлений при проверке условий, т.е. банальных if-then-else блоков. В оригинале, bat-язык поддерживал только одну команду в блоке then, что автоматически приводило к идиомам вида:

if condition goto :THEN
rem Команды ветки ‘else’
rem ...
goto IF_END
:THEN
rem Команды ветки ‘then’
rem ...
:IF_END

Но к счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения меток.) exit /b 1 )

rem Удаляем из аргумента все дефисы для упрощения обработки
set BUILDMODE=%BUILDMODE:-=%
if "%BUILDMODE%" == "debug" (
echo INFO: Устанавливаем debug-режим окружения
set CCFLAGS=/Od /MDd /Z7
) else (
echo INFO: Устанавливаем release-режим окружения
set CCFLAGS=/O2 /MD
)

На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:

if "%BUILDMODE%" == "debug" (
echo INFO: Устанавливаем debug-режим окружения
    set OPTFLAGS=/Od
set CCFLAGS=%OPTFLAGS% /MDd /Z7
) else (
echo INFO: Устанавливаем release-режим окружения
    set OPTFLAGS=/O2
set CCFLAGS=%OPTFLAGS% /MD
)

Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.

Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…%, будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe, либо использованием команды

setlocal enabledelayedexpansion

в тексте самого bat-файла. Второй способ мне представляется более удобным – не очень здорово требовать от кого-то запуска твоего сценария с определенным параметром.

С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:

if "%BUILDMODE%" == "debug" (
echo INFO: Setting up debug mode environment
    set OPTFLAGS=/Od
set CCFLAGS=!OPTFLAGS! /MDd /Z7
) else (
echo INFO: Setting up release mode environment
    set OPTFLAGS=/O2
set CCFLAGS=!OPTFLAGS! /MD
)

Вот теперь это почти полноценный if-then-else блок., иначе синтаксический анализатор путается…

Но в любом случае, это гораздо лучше безумного количества меток и переходов.

Как обработать текстовый файл?

Иногда в командном файле необходимо получить доступ к содержимому некоторого текстового файла и некоторым образом это содержимое обработать. Например, прочитать файл настроек программы.

Для привнесения еще большей конкретики в процесс изучения зададимся целью прочитать файл с настройками следующего содержания:

buildmode=release
compiler=cl.exe
arch=x86

Ничего сверхъестественного – простой key=value формат с возможностью вставки Unix-style комментариев. Помочь в чтении и обработке этого файла нам сможет команда for. Ее дополнительные опции позволяют задать и разделители, и символ начала комментария, и кое-что еще. Вот командный файл, который выполняет поставленную задачу:

@echo off
rem Читаем настройки из файла settings.txt, который должен располагаться в
rem том же каталоге, что и bat-файл. Если не удалось распарсить настройки -
rem выходим с ненулевым кодом возврата.
call :read_settings %~dp0\settings.txt || exit /b 1
rem Прочитанные настройки:
echo Build mode  : %BUILDMODE%
echo Compiler    : %COMPILER%
echo Architecture: %ARCH%
 
rem Выход из сценария. Дальше - только функции.
exit /b 0
 
rem Функция для чтения настроек из файла.
rem Вход: %1 - Имя файла с настройками
:read_settings
set SETTINGSFILE=%1
rem Проверка существования файла
if not exist %SETTINGSFILE% (
echo FAIL: Файл с настройками отсутствует
exit /b 1
)
 
rem Обработка файла c настройками
rem Здесь: eol=# указывает на то, что содержимое строки начиная с символа #
rem и до ее конца может быть пропущено как комментарий.
rem delims== указывает, что разделителем значений является символ =
rem tokens=1,2 приводит к тому, что в переменную %%i будет занесен первый
rem токен, а в %%j - второй.
for /f "eol=# delims== tokens=1,2" %%i in (%SETTINGSFILE%) do (
   rem В переменной i - ключ
   rem В переменной j - значение
   rem Мы транслируем это в переменные окружения
   set %%i=%%j
)
exit /b 0

Обильные комментарии должны помочь легко разобраться, что к чему. За подробностями, как обычно, отошлю к:

for /?

Кстати, возможности команды for не ограничиваются чтением из файла. Возможно также чтение вывода другой команды. Например, так:

@echo off
for /f "tokens=* usebackq" %%i in (`cmd.exe /c ver`) do (
set VERSION=%%i
)
echo %VERSION%

Особенно меня умиляет наличие опции “usebackq”, которая делает синтаксис отдаленно похожим на юниксовый. И в стенах царства Билла есть граждане, скучающие по /bin/sh и пытающиеся хоть как-то скрасить существование свое и окружающих. Следующий совет это также косвенно подтверждает.

Что это за упомянутые ранее операторы объединения команд?

Это операторы &, && и ||. Они практически совсем не освещены в документации, но полезны в повседневности. Они позволяют объединять несколько команд в одну, т.е. примерно так:

command1 & command2
command1 && command2
command1 || command2

Форма этих операторов весьма соответствует их содержанию. В случае, пожалуй, наименее полезного оператора & вторая команда будет просто выполнена после первой, т.е. это равносильно простой записи:

command1
command2

Оператор && гарантирует, что вторая команда будет выполнена только, если первая была выполнена успешно, т.е. с нулевым кодом возврата (он же %errorlevel%). Такие конструкции очень популярны в мире shell-сценариев Unix. Например:

cd sources && make clean

Я был приятно удивлен, узнав, что cmd.exe тоже умеет выполнять такие конструкции. Это безопаснее и правильнее, нежели простое последовательное выполнение этих команд, и короче и проще, чем строгая проверка и обработка кодов возврата. Очень удобно при написании на скорую руку. Не менее полезен иногда и оператор ||. Суть его тоже логична – выполнить вторую команду, если первая дала сбой. Часто встречается в таких идиомах:

cd sources || exit 1

Если перейти в каталог sources не удастся, то будет произведен выход с кодом ошибки 1. Если же первая команда отработает нормально, то вторая выполнена не будет. Например, такая простейшая защита помогла бы в случае с cd по UNC-адресу, описанному ранее.

Можно ли написать на bat-языке серьезную программу?

Пожалуй, нет. (см. предыдущий пример).

Автор: Алексей Александров. Источник: RSDN Magazine #2-2005

[Ссылки]

1. Применение команды for в bat-файлах (technet.microsoft).
2. DOS Command Index site:earthlink.net.
3. О вреде оператора goto site:vspu.ac.ru.

.BAT-файлы | DIM565.RU

Расширение BAT — от слова Batch(пакет). То есть — это пакетные файлы или файлы с набором команд. Они использовались в MS DOS, используются в Windows 9x и Windows NT. Так как эти файлы обычные ASCII файлы, то Вы можете их править в любом текстовом редакторе, например NotePad. После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды.

Чтобы создать .bat файл:
1) Открыть Блокнот (ПУСК->Программы->Стандартные->Блокнот)
2) Ввести нужные команды
3) Сохранить с расширением .bat {Файл->Сохранить как…->Имя файла+bat расширение, например, example.bat ; Тип файла — «Все файлы»}

Список распространенных команд:

ATTRIB установка атрибута файла
BREAK прерывание программы
CD переход в новый каталог
CHKDSK проверка дисков
CLS очистка экрана
COMP сравнение дисковых файлов
COPY копирование файла
DATE установка даты
DIR просмотр каталогов
ECHO вывод сообщения на экран
ERASE (DEL) удаление файлов
FIND поиск данных
FORMAT форматирование диска
LABEL создание и замена метки диска
PRINT вывод на печать данных
PAUSE приостановка выполнения .bat файла
RENAME (REN) переименование файлов
REPLACE селективная замена и копирование файлов
RD удаление пустого каталога
TIME установка времени
TREE вывод дерева каталогов
TYPE вывод на дисплей содержимого файла
VERIFY проверка записи на диск
VOL вывод метки диска
XCOPY выборочное копирование групп файлов и каталогов
О любой команде можно узнать подробнее, если зайти в ПУСК->Выполнить->cmd->ввести: команду, пробел, /? Например, xcopy /?

Пример №1
Цель: Копирование текстового файла 1.txt, который находится на диске C на диск D в папку ARHIV :

COPY «C:\1.txt» «D:\ARHIV\1.txt»

Пример №2
Цель: Просмотреть содержимое файла license.txt, который находится на диске C:\Program Files\Celestia, после этого удалить его :

TYPE «C:\Program Files\OpenOffice.org 2.2\license.txt»
PAUSE
DEL «C:\Program Files\OpenOffice.org 2.2\license.txt»

Пример №3
Цель: Сделать, чтобы при запуске .bat файла создавалась резервная копия антивирусных баз и обновлений антивируса avast!, которая копировалась бы на Flash-накопитель
Во-первых, пускай перед копированием производится проверка, отличаются ли антивирусные базы на флэшке и на жестком диске(т.е нужно ли обновление)
Во-вторых, пускай перед копированием удаляются все файлы из папки Setup(на флэшке) и файл 400.vps(на флэшке) — так надежнее(и меньше места на флэшке остается)
В-третьих, антивирусные базы находятся в файле 400.vps, который лежит в C:\Program Files\Alwil Software\Avast4\DATA\
В-четвертых, все обновления программы находятся в C:\Program Files\Alwil Software\Avast4\Setup\
Теперь можно создавать .bat файл :

comp «C:\Program Files\Alwil Software\Avast4\DATA\400.vps» «J:\DataBackup\avast!Bases\400.vps»
del «J:\DataBackup\avast!Bases\Setup»
del «J:\DataBackup\avast!Bases\400.vps»
copy «C:\Program Files\Alwil Software\Avast4\Setup\» «J:\DataBackup\avast!Bases\Setup»
copy «C:\Program Files\Alwil Software\Avast4\DATA\400.vps» «J:\DataBackup\avast!Bases»
pause

P.S Я советую не использовать такой способ для копирования баз антивируса avast! — пишут, что он неэффективный. Лучше всего — скачивать официальный пакет обновлений

Пример №4
Цель: Запустить программу DVBdata через 3 секунды после запуска .bat. После-закрыть окно cmd.

ping -n 3 127.0.0.1 > NUL
start DVBdata.exe

Этот .BAT файл нужно поместить в папку с запускаемой программой

Автор статьи: Dim565
При копировании материалов, ссылка на источник (dim565.ru) обязательна!

Как создать bat файл в Windows 10

Автор: AleksPayne · 23.11.2019

Здравствуйте друзья сайта itswat.ru, если вас интересует, как создать файл bat на Windows 10, то в качестве ответа предлагаются определённые методы. Они и раскрываются в данном материале.

Сегодня практически все пользователи ПК работают с операционной системой Windows 10 (в народе её называют «десяткой»). В неё также предусматривается опция создания bat-файлов. Это несложный процесс, который под силу реализовать даже новичкам.

Содержание статьи:

  • Читайте также: Как из txt сделать bat: два простейших способа и полезные советы >>>

Понятие

Bat-файл – такой вид файла, который поддерживает текст с аналогичным расширением. В него входят построчные операции для командной строки (она обозначается cmd.exe).

С его помощью можно:

  1. Автоматизировать однообразные действия с файлами: копирование, вырезка, удаление и т.п.
  2. Запускать программы на ПК.
  3. Выполнять другие операции.

Первый способ – генерация через текстовый документ

Данный способ подразумевает создание bat файла с помощью блокнота. Запускайте соответствующее приложение: через меню пуск или нажатием правой кнопки мыши и выбора «создать текстовый документ».

  • Читайте также: Как сохранить текстовый документ в формате bat: пошаговая инструкция с фотопримерами >>>

В нём прописывайте две команды:

  1. ipconfig /flushdns.
  2. pause.

Наводите курсор на опцию «файл», выбирайте пункт «сохранить как». В появившемся окошке щёлкните слева, определите место размещения файлы и напишите его имя, также укажите через точку нужное расширение — bat. Затем сохраните файл.

Далее запустите его. И результат отобразится соответствующем окне. Оно выглядит так:

В данной ситуации произошло успешное очищение кэша в опциях разрешения имён DNS. При этом убраны проблемы с отображением интернет-страниц. Закрыть окно можно нажатием любой клавиши.

Второй способ – программный

Если новички редко задействуют командный интерпретатор и довольствуются опциями блокнота, то более опытные пользователи (системные администраторы, создатели сборок ОС и ПО) предпочитают более комфортный метод для работы с файлами bat.

Он подразумевает использование специальной программы для создания bat-файлов и их редактирования. Она называется Dr.Batcher.

У её интерфейса и функционала мало отличия от «Блокнота». В основном меню устроены кнопки наиболее актуальных команд. Программа может:

  1. Нумеровать страницы.
  2. Поддерживать закладки.
  3. Содержать перечень системных операций.
  4. Подсвечивать синтаксис вводимых команд.

Сотворение bat-файла в ней происходит в такой последовательности:

  1. Запуск программы.
  2. Обращение к пункту «File». Затем нажимайте кнопку «New». После чего щёлкаете на символ чистого листа, находящийся под меню «File».
  3. В появившемся окне выбирается опция «Empty Batch File».

После этого появится окно программы с требующимися рабочими функциями. Указываете диапазон команд, который должен реализовывать файл. Он находится в левой стороне:

Сохраняйте документ в необходимой директории на вашем жёстком диске.

Здесь можно сразу и отредактировать файл. Для этого есть несколько вариантов:

Первый: связан с вызовом контекстного меню bat-файла. Здесь выпадает определённый перечень функций. Выбирается пункт под названием «Edit with Dr.Batcher».

После этих действий запускается программное окно. В нём содержатся данные созданного ранее bat-файла. Можно вносить в них необходимые коррективы.

Второй: происходит в самой программе . Для этого она запускается, снова вызывается опция «File» из основного меню. Выпадает окно, в котором в данном случае интерес представляет пункт «Open».

Под обозначенным меню находится иконка папки, её следует щёлкнуть. Открывается диалоговое окно, позволяющее открывать файлы. В нём прописываете путь к интересуемому документу с разрешением bat и нажимайте «Открыть».

Этот файл открывается в программном окошке и становится доступным для корректировок.

Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.

Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.

Как создать файл с расширением BAT

Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».

Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».

Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.

Вместо расширения BAT можно использовать CMD, результат выполнения скрипта будет точно таким же.

Основные команды, синтаксис и примеры использования батников

Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.

Открываем пустой батник и вставляем в него такие команды:

start "" "C:/Program Files/Google/Chrome/Application/chrome.exe"  timeout /t 05  start "" "C:/Program Files/Mozilla Firefox/firefox.exe"  timeout /t 05  start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"  

Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.

При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:

start /b "" "путь"

Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.

start /b "" "путь"  pause  

Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:

@echo off  chcp 1251  echo "Вы действительно хотите выключить компьютер?"  pause  shutdown /s /t 0  

Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.

Если вместо русского текста при выполнении команды вы увидите крякозябры, попробуйте преобразовать файл скрипта в ANSI.

Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:

del /A /F /Q "D:/data"

А можно и так:

forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"

В отличие от первой, вторая команда удаляет файлы рекурсивно, то есть в папке data будут удалены все файлы плюс те, которые лежат во вложенных каталогах.

А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:

robocopy C:/data D:/backup /e  pause  

Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.

Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора. Понадобиться они могут и батникам. Самый очевидный способ запустить скрипт от имени администратора, это кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню соответствующую опцию.

Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.

Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.

И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.

Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs, предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.

Set WshShell = CreateObject("WScript.Shell")  WshShell.Run chr(34) & "D:script.bat" & Chr(34), 0  Set WshShell = Nothing  

Есть также и другие варианты, например, использование утилиты Hidden Start, позволяющей запускать исполняемые и пакетные файлы в скрытом режиме, в том числе без приглашения UAC.

А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.

Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.

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

Создание .bat файла с помощью блокнота

Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.

Шаги по созданию будут следующими

  1. Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:Windowsnotepad.exe).
  2. Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции). 
  3. В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы». 
  4. Нажмите кнопку «Сохранить».

Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).

Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).

Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».

Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).

Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.

Запуск программ в файле bat и другие базовые команды

В командном файле вы можете запускать любые программы и команды из этого списка: https://technet.microsoft.com/ru-ru/library/cc772390(v=ws.10).aspx (правда, некоторые из указанных могут отсутствовать в Windows 8 и Windows 10). Далее — лишь некоторые базовые сведения для начинающих пользователей.

Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).

Для запуска программы или программ используйте команду:

start "" путь_к_программе

Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:

start "" "C:Program Filesprogram.exe"

После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):

start "" c:windowsnotepad.exe file.txt

Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.

Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:

call путь_к_файлу_bat параметры

Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:

call file2.bat параметр1 параметр2 параметр3

В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:

echo %1 echo %2 echo %3 pause

Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).

По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.

Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:

timeout /t время_в_секундах

При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:

start "" /MIN c:windowsnotepad.exe

Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:

cmd /c start /b "" путь_к_программе параметры

Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:

cmd /c start "" /d "путь_к_папке_с_пробелами" /b имя_файла_программы "параметры_с_пробелами"

Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.

Используемые источники:

  • https://itswat.ru/kak-sozdat-fajl-bat-na-windows-10/
  • https://viarum.ru/kak-sozdat-bat-fayl-v-windows/
  • https://remontka.pro/create-bat-file-windows/
Всемирный банк утверждает, что повышение налогов на

богатых может потребоваться для выплаты пандемического долга Таиланда

Сверхбогатым Таиланде, возможно, в конечном итоге придется платить больше налогов, чтобы покрыть государственные займы в размере 45 миллиардов долларов во время пандемии коронавируса, заявили в четверг экономисты Всемирного банка, поскольку страна изо всех сил пытается развернуть вакцины, чтобы сгладить кривую своей худшей вспышки COVID-19. .

ФАЙЛ — Данин Чераванонт, председатель крупнейшей агробизнес-группы Таиланда, Charoen Pokphand Food, прибывает на семинар Тайско-китайского делового совета в Бангкоке, 15 марта 2013 года.

Королевство, одно из наименее равных обществ в Азии, является домом для 52 миллиардеров, согласно шанхайскому списку богатых людей Хурун, больше всего в Юго-Восточной Азии, опережая Италию, Японию и Сингапур.

Многие из них приумножили свои состояния во время пандемии — в том числе Данин Чераванонт, самый богатый человек Таиланда, чей собственный капитал составляет 18,1 миллиарда долларов в списке Forbes 2021 года.

Напротив, миллионы тайцев стали безработными — включая бессчетную армию неформальных рабочих, от водителей тук-туков до уличных торговцев — в то время как долг домохозяйств вырос до 90% валового внутреннего продукта.

Тем не менее, налоговые ставки остаются относительно низкими, включая 20% корпоративный налог — только Сингапур и Бруней имеют более низкие ставки в Юго-Восточной Азии — в то время как прирост капитала от продажи активов не облагается налогом в Таиланде.

В связи с тем, что миллионы людей пострадали от долгов и риск появления новых вариантов коронавируса, усугубляющих развертывание вакцины от заикания, Всемирный банк предупредил, что правительство может быть вынуждено вернуться в банки за дополнительными деньгами, которые можно будет вложить в экономику.

Чтобы установить рекорд, органы-заемщики могут обратиться к «состоятельным физическим лицам», как только будет определен курс на восстановление, сказал Ким Эдвардс, старший экономист Всемирного банка, добавив, что некоторые «щедрые вычеты» могут быть пересмотрены.

«Сбор подоходного налога с физических лиц далек от того, что могло бы быть… соблюдение налоговых требований и потенциально повышение максимальной налоговой ставки, увеличение прироста капитала и налогов на имущество», — также могут быть способами съесть дефицит, — добавил он во время виртуального пресс-конференция, посвященная выпуску полугодового отчета банка об экономике страны.

В соседней Малайзии ставка корпоративного налога составляет 24%, а на Филиппинах — до 30%.

«Менее ясно, почему эти налоговые реформы не должны работать в Таиланде», — заявила журналистам Биргит Хансл, страновой менеджер банка в Таиланде.

ФАЙЛ — Король Таиланда Маха Ваджиралонгкорн приветствует роялистов перед бдением при свечах в память о дне рождения покойного короля Таиланда Пумипона Адульядета у Большого дворца в Бангкоке, Таиланд, 5 декабря 2020 года.

Деловые кланы Таиланда сильно зависят от политики и регулярно делают общественные пожертвования монархии, часто транслируемые по телевидению на великих церемониях, проводимых королем Махой Ваджиралонгкорном, по многим оценкам самого богатого монарха мира, с частным состоянием от 30 до 70 миллиардов долларов.

Повышение налогов для богатых в экономике, в которой доминируют монополии, является одним из призывов выступающих за демократию протестующих, митинги которых снова накаляются по мере того, как экономика спадает и погружается в кризис общественного здравоохранения.

Задержка выздоровления

В своем «Мониторинге экономики Таиланда — путь к выздоровлению» банк заявил, что экономика Таиланда может вырасти на 2,2% в этом году, если он сможет быстро дать отпор вирусу, который убил 2938 человек с апреля и привел к 343 352 случаям заражения в качестве альфа. и дельта-варианты разрываются по стране.

Власти фактически заблокировали Бангкок и несколько других провинций, предупредив о надвигающемся кризисе в больницах, где сейчас не хватает коек в отделениях интенсивной терапии.

Однако, по данным органов здравоохранения Таиланда, около 3,4 миллиона человек, или всего 4,8% от почти 70-миллионного населения, были полностью вакцинированы.

ФАЙЛ — Люди получают первую дозу вакцины AstraZeneca COVID-19, поскольку Таиланд начинает массовую вакцинацию в спортзале Университета Таммасат в Патум Тани, Таиланд, 7 июня 2021 года.

Если вирус продолжит распространяться, Всемирный банк заявил, что в этом году рост страны может сократиться до жалких 1,2%, что намного ниже региональных прогнозов.

Страна пытается привлечь обратно вакцинированных посетителей, начиная с островов Пхукет и Самуи, которые открылись в четверг, поскольку страна стремится реанимировать ключевой сектор, на который до пандемии приходилось около одной пятой ВВП.

ФАЙЛ — На этом фото от 26 марта 2020 года туристы купаются на пляже, Пхукет, Таиланд.

Таиланд зарегистрировал 40 миллионов туристов, прибывших в 2019 году, но ожидаемое число в 2021 году резко снизилось с предыдущего прогноза в 4 миллиона до 5 миллионов до всего 600000, сообщает банк.

Правительство архи-роялистов премьер-министра Прают Чан-оха вложило 45 миллиардов долларов в экономику, чтобы помочь безработным и стимулировать расходы, при этом 15 миллиардов долларов будут рассредоточены в ближайшие недели.

В отчете высоко оценивается масштабное стимулирование правительства, которое началось в апреле прошлого года.

Прогнозируется, что сильное восстановление мирового спроса, вероятно, вызовет экспортный бум в Таиланд, что даст правительству возможность заимствовать дополнительные средства в случае необходимости.

Однако последняя эпидемия омрачила восстановление.

Вакцины считаются единственным выходом из пандемии, но самый большой риск заключается в том, что вакцинация продвигается «не так быстро, как мы надеялись», — сказал Хансл.

бат упали до 9-месячного минимума, рынок вырос на

Памятные банкноты, посвященные церемонии королевской коронации 2019 года (фото из файла Bangkok Post)

Во вторник бат достиг почти девятимесячного минимума, продолжая потери седьмую сессию подряд, поскольку недавний ястребиный поворот Федеральной резервной системы США продолжал оказывать давление на валюту.

Рынки акций по всей Азии за ночь зафиксировали глобальный отскок на Уолл-стрит, когда участники рынка обратили свое внимание на экономический рост.

Бат, который оказался под давлением вместе со своими региональными аналогами после того, как ФРС на прошлой неделе объявил о более раннем, чем ожидалось, ужесточении политики, упал до самого низкого уровня с 30 сентября 2020 года.

«Недавнее ослабление бата в значительной степени связано с недавним агрессивным поворотом ФРС США, который, вероятно, усугубляется и без того слабыми экономическими показателями Таиланда из-за вирусной ситуации», — сказал Дирадж Ним, валютный стратег ANZ Research.

В то время как строгие требования к въезду и карантинные меры изначально помогали сдерживать вспышки коронавируса, ограничения привели к резкому снижению доходов от ключевого туристического сектора.

Инвесторы также ждут заседания Банка Таиланда в среду, на котором центральный банк, как ожидается, сохранит свою учетную ставку на рекордно низком уровне, но, вероятно, снизит свои перспективы экономического роста.

Однако несколько других валют в регионе выиграли от ослабления доллара США, поскольку инвесторы ожидали свидетельских показаний председателя Федеральной резервной системы Джерома Пауэлла.

«Мы внимательно следим за тем, попытаются ли официальные лица ФРС убедить рынки в том, что ФРС не собирается начинать цикл ужесточения заранее», — сказал Кристофер Вонг, старший валютный стратег Maybank.

«Однако, если его не будет … и вместо этого будет больше ястребиных разговоров, то рост доллара может оказать давление на AxJ (Азия, кроме Японии)».

индонезийских акций, которые упали на 1,5% на прошлой неделе, прервали четырехдневную полосу убытков и подскочили почти на 1,5%, несмотря на то, что общее число случаев коронавируса в стране превысило отметку в два миллиона.

Акции Филиппин и Южной Кореи выросли на 0,7% и 0,6% соответственно, в то время как акции Таиланда продемонстрировали лучшую торговую сессию почти за две недели.

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

SDR на денежную единицу и денежных единиц на SDR — последние пять дней


Архив обменных курсов

0000000000
СПЗ на денежную единицу 2
07 ноября
2021
05 ноября
2021
04 ноября
2021
03 ноября
2021
02 ноября
2021
Китайский юань 0.1110150000 0,1109370000 0,1106970000 0.1106440000
Евро 0,81841

0.82077

0,8201770000 0,8215710000
Японская иена 0.0062450100 0,0062151900 0,0062056800
U.К. фунт 0,9550830000 0,9641260000 0.96716

0,9667960000
доллар США 0.7104950000 0,7094640000 0,7083930000 0.7080680000
Алжирский динар 0.0051605700 0,0051578200 0,0051624700 0.0051633400
Австралийский доллар 0.5255530000 0,52840

0,5266

0

0.53083

Ботсвана пула 0.0622394000 0,0620781000 0,0617719000 0.0616727000
Бразильский реал 0.1281350000 0,1268350000 0,1250120000
Брунейский доллар 0.5254750000 0,5250470000 0,52542

канадский доллар 0.5705870000 0,5698960000 0,5705030000 0.5708380000
Чилийское песо 0.0008711530 0,0008699530 0,0008698130 0.0008731770
Колумбийское песо 0.0001846690 0,0001848600 0,0001874710 0.0001871000
Чешская крона 0.0323895000 0,0322161000 0,0321063000 0.0321309000
Датская крона 0.1100380000 0,1103540000 0,1102680000 0.11042

Индийская рупия 0.0094999100 0,0094710100
Новый израильский шекель 0.22786

0,2270280000 0,2262200000
Корейский вон 0.0006021140 0,0006006810 0,0006026310 0.0006019450
Кувейтский динар 2.3519400000 2,3483

0

2,3473200000
Малайзийский ринггит 0.1705530000 0,1706600000
Маврикийская рупия 0.0165268000 0,0164855000
Мексиканский песо 0.0348410000 0,0343996000 0,0339998000
Новозеландский доллар 0.5048070000 0,5084730000 0,5044470000 0.5083220000
Норвежская крона 0.0827707000 0,0832519000 0,0831740000 0.083
Оманский риал 1.8451600000 1.8423700000 1.8415300000
Перуанский соль 0.1771810000 0,1770560000 0,1767450000 0.1767080000
Филиппинское песо 0.0140506000 0,0140377000 0,0140407000
Польский злотый 0.1780200000 0,1782260000 0,1785220000 0.1780320000
Катарский риял
Русский рубль 0.009 0,009
Саудовский риял 0.1891

0

0,188 0,1888180000
Сингапурский доллар 0.5254750000 0,5250470000 0,52542

Южноафриканский рэнд 0.0465669000 0,0465285000 0,045
Шведская крона 0.0827263000 0,0827508000 0,0827804000 0.0830832000
швейцарский франк 0.7750570000 0,7758370000
Тайский бат 0.0213195000 0,0212573000 0,0212431000 0.0212601000
Доллар Тринидада 0.10501

0,1048450000 0,1050340000
U.A.E. дирхам 0,1931830000 0.19280 0,1928030000
Уругвайское песо 0.0162

0

0,0161337000 0,0160444000
00000
Денежные единицы в СДР 3
07 ноября
2021
05 ноября
2021
04 ноября
2021
03 ноября
2021
02 ноября
2021
Китайский юань 9.007790 9.014130 9.033670 9.038000
Евро 1.221870 1,218350 1,219250 1,217180
Японская иена 160.128000 160,896000 161.143000
U.К. фунт 1.047030 1,037210 1.033950 1,034340
доллар США 1.407470 1,409510 1,411650 1,412290
Алжирский динар 193.777000 193,880000 193,706000 193.673000
Австралийский доллар 1. 1,8
1,898650 1,883810
Ботсвана пула 16.067000 16.108700 16.188600 16,214600
Бразильский реал 7.804270 7,884260 7,999230
Брунейский доллар 1. 1,0 1,0
канадский доллар 1.752580 1,754710 1,752840 1,751810
Чилийское песо 1,147.

0

1,149,4

1 149,670000 1,145.240000
Колумбийское песо 5 415.0

5 409 500 000 5,334,160000 5 344.740000
Чешская крона 30,874200 31.040400 31,146500 31.122700
Датская крона 9.087770 9.061750 9,068810 9.055590
Индийская рупия 105.264000 105,585000
Новый израильский шекель 4.388490 4,404740 4,420480
Корейский вон 1,660.820000 1,664,780000 1,659,3

1,661.280000
Кувейтский динар 0.425181 0,425824 0,426018
Малайзийский ринггит 5.863280 5,859600
Маврикийская рупия 60.507800 60.659400
Мексиканский песо 28.701800 29.070100 29,411900
Новозеландский доллар 1.980960 1,966670 1,982370 1,967260
Норвежская крона 12.081600 12.011700 12.023000 11,
Оманский риал 0.541958 0,542779 0,543027
Перуанский соль 5.643950 5,647930 5,657870 5,659050
Филиппинское песо 71.171300 71.236700 71,221500
Польский злотый 5.617350 5,610850 5,601550 5,616970
Катарский риял
Русский рубль 100.

0

100,948000
Саудовский риял 5.285690 5,293670 5,296110
Сингапурский доллар 1. 1,0 1,0
Южноафриканский рэнд 21.474500 21,4

21,784000
Шведская крона 12.088100 12.084500 12.080200 12.036100
швейцарский франк 1.2 1,288930
Тайский бат 46.
47,042700 47.074100 47,036500
Доллар Тринидада 9.522090 9,537890 9,520730
U.A.E. дирхам 5,176440 5.184280 5,186640
Уругвайское песо 61.378300 61.982100 62,327000
Примечания:
(1) Обменные курсы публикуются ежедневно, кроме выходных дней МВФ или когда МВФ не работает.
(2) Стоимость доллара США в СДР является обратной суммой стоимостей в долларах на основе рыночных обменных курсов определенных количеств валют корзины СДР.См. Оценка SDR. Стоимость в СДР каждой из других валют, показанных выше, определяется на основе репрезентативного обменного курса этой валюты по отношению к доллару США, сообщенного центральным банком-эмитентом, и стоимости доллара США в СДР, за исключением иранского риала и Ливийский динар, стоимость которого официально выражена непосредственно в единицах национальной валюты на СПЗ. Все цифры округлены до шести значащих цифр. См. Представительские курсы обмена для выбранных валют.
(3) Стоимость СПЗ в каждой национальной валюте является обратной величиной СПЗ каждой национальной валюты, округленной до шести значащих цифр.

8 основных фактов о налогах для экспатов в Таиланде Налог

Хотя Таиланд является домом для многих разнообразных культур, его жители наслаждаются простотой, которую можно найти в немногих местах в мире. Возможно, именно эта свобода становится клейким элементом обуви американских эмигрантов, которые там поселяются.Но могут ли экспаты пользоваться такой же простотой, когда дело касается налогов в Таиланде? Просмотрите эти 8 фактов, чтобы упростить подачу налоговой декларации, живя в Таиланде.

Кто является налоговым резидентом Таиланда?

Если вы прожили в Таиланде более 180 дней в календарном году, вы считаются резидентом. До этого 180 дней вы считаются нерезидентом.

Применяется ли налог на прибыль в Таиланде к иностранным доходам?

Подоходный налог в Таиланде применяется к доходам во всем мире, как и в США.Но в отличие от США, только резиденты облагаются налогом со своего мирового дохода, в то время как нерезиденты облагаются налогом только с дохода, полученного в Таиланде.

Таиланд налоговые ставки

Налоговые ставки варьируются в зависимости от вашего личного дохода по налогам на экспатов в Таиланде. Ставки прогрессивные и варьируются от 0% для тех, кто зарабатывает менее 150 000 бат, до 35% для тех, кто зарабатывает более 5 000 001 бат.

Валюта, используемая в Таиланде, — бат, сокращенное название — THB. Один тайский бат в настоящее время равен примерно доллару США.030 долларов США. (Это может измениться в любой момент.) Ставки подоходного налога с физических лиц в Таиланде указаны здесь в батах.

Налогооблагаемый доход (бат) Ставка налога (%)
0–150 000 Освобождено
более 150 000, но менее 300 000 5%
более 300 000, но менее 500 000 10%
более 500 000, но менее 750 000 15%
более 750 000, но менее 1 000 000 20%
более 1 000 000, но менее 2 000 000 25%
более 2 000 000, но менее 4 000 000 30%
Более 4 000 000 35%

Когда нужно платить налоги в Таиланде?

Налоги

в Таиланде рассчитываются в течение календарного года, и ваша декларация о подоходном налоге («НДФЛ») должна быть подана до 31 марта за предыдущий год.Если вы работаете в сфере развлечений или зарабатываете на рекламу, вы должны подать «среднегодовую» налоговую декларацию до 30 сентября.

Социальное обеспечение в Таиланде

Таиланд использует систему социального страхования, при которой работники вносят 5% от первых 15 000 бат дохода, а работодатели платят соответствующие 5%. Правительство Таиланда добавляет 2,5% взноса в систему страхования.

Таиланд и США не имеют друг с другом соглашений о социальном обеспечении. Это означает, что некоторые эмигранты из США должны будут вносить в обе системы социального обеспечения часть доходов в Таиланде.

Прочие предметы, касающиеся экспатов, проживающих в Таиланде

Вы будете платить 7% НДС (налог на добавленную стоимость) на определенные товары, приобретенные в Таиланде. Также существует гербовый сбор за подписанные документы, например, на аренду.

Налоги и финансовая отчетность США для американцев в Таиланде

Если вы являетесь гражданином или резидентом США, вы все равно должны будете ежегодно подавать налоги в США. Если у вас есть активы на счетах в иностранных банках, вам может потребоваться также сообщить об этом. В частности, любой человек, имеющий 10 000 долларов и более в иностранном банке или финансовом учреждении в течение календарного года, должен будет подать FBAR.

Что такое налоговое соглашение между США и Таиландом?

США и Таиланд заключили налоговое соглашение в 1996 году, и оно остается в силе. Одна из целей этого соглашения — исправить двойное налогообложение, что должно облегчить некоторые из ваших налогов на экспатов. Положения налогового соглашения, касающиеся пунктов вашей налоговой декларации, должны применяться надлежащим образом. Возможно, вам потребуется проконсультироваться с налоговым консультантом, чтобы убедиться в этом.

Как сэкономить на налогах на иностранцев в США

К счастью, есть несколько способов снизить или отменить ваши налоговые обязательства в США.Первый — это Исключение дохода, полученного за границей, которое позволяет исключить определенную сумму из дохода, полученного за границей, из налогов, взимаемых с иностранных граждан США.

Второй — это иностранная налоговая льгота, которая позволяет вам компенсировать налоги, уплаченные в принимающей стране, с ваших американских налогов, взимаемых с иностранцев, в долларах за доллар. Как и большинство налоговых льгот в США, Иностранная налоговая льгота может уменьшить налоги, которые вы должны платить иностранцам. Один доллар кредита снижает налог в США на один доллар. Ваш иностранный налоговый кредит будет ограничен только теми тайскими налогами, которые относятся к вашим тайским доходам, облагаемым налогом США.Это означает, что любой тайский налог на тайский заработок, который вы исключаете из FEIE и исключения иностранного жилья, не будет включен в расчет вашего иностранного налогового кредита.

И, в-третьих, исключение иностранного жилья, которое позволяет дополнительное исключение из дохода по налогам на экспатов в США для определенных сумм, уплаченных за домашние расходы, возникающие в результате проживания за границей.

Если у вас есть какие-либо вопросы о подаче налоговых деклараций в США или Таиланда, пожалуйста, свяжитесь с нами.

Хотите больше информации о налогах для экспатов в Таиланде?

Наши опытные CPA и зарегистрированные агенты IRS могут ответить на любые ваши вопросы о налоговой ситуации в Таиланде в качестве экспата. Когда вы подадите нам заявку, наши налоговые эксперты-эмигранты изучат все возможные налоговые льготы и вычеты, чтобы максимизировать ваши сбережения. Начните подавать налоговую декларацию для эмигрантов в США уже сегодня!

Среднегодовой обменный курс валюты

Пересчет иностранной валюты в U.

долларов США

Вы должны выражать суммы, указанные в налоговой декларации США, в долларах США. Следовательно, вы должны переводить иностранную валюту в доллары США, если вы получаете доход или оплачиваете расходы в иностранной валюте. Как правило, при получении, оплате или накоплении товара используйте преобладающий обменный курс (то есть спотовый курс).

Единственное исключение касается некоторых квалифицированных бизнес-единиц (QBU), которым, как правило, разрешено использовать валюту другой страны. Если у вас есть QBU с функциональной валютой, отличной от U.S. доллар, производите все определения дохода в функциональной валюте QBU и, при необходимости, переводите такой доход или убыток по соответствующему обменному курсу.

Налогоплательщику также может потребоваться признать прибыль или убыток от иностранной валюты по определенным операциям с иностранной валютой. См. Раздел 988 Налогового кодекса и соответствующие правила.

Примечание. Платежи по налогам США должны переводиться в Налоговое управление США в долларах США.

Курсы валют

Налоговая служба не устанавливает официального курса обмена валют. Как правило, принимает любой опубликованный обменный курс, который используется постоянно.

При оценке валюты другой страны, в которой используется несколько обменных курсов, используйте курс, который применяется к вашим конкретным фактам и обстоятельствам.

Примечание: Обменные курсы, указанные на этой странице, не применяются при уплате налогов США в IRS. Если IRS получает налоговые платежи США в иностранной валюте, обменный курс, используемый IRS для конвертации иностранной валюты в U.Доллар США рассчитывается на основе даты конвертации иностранной валюты в доллары США банком, обрабатывающим платеж, а не даты получения платежа в иностранной валюте в IRS.

Среднегодовые курсы обмена

Для дополнительных обменных курсов , не указанных ниже , обратитесь к правительственным и внешним ресурсам, указанным на странице Иностранная валюта и курсы обмена валют, или к любому другому опубликованному обменному курсу (который используется постоянно).

Для конвертации из иностранной валюты в U.Долларов США, разделите сумму в иностранной валюте на применимый среднегодовой обменный курс, указанный в таблице ниже. Чтобы конвертировать доллары США в иностранную валюту, умножьте сумму в долларах США на применимый среднегодовой обменный курс, указанный в таблице ниже.

рупий

Среднегодовой обменный курс для конвертации иностранной валюты в доллары США

Страна

Валюта

2020

2019

2018

2017

2016

2015
Афганистан
Афгани 76.651 77,579 73,598

71.086

70.645

63,653

Алжир
динар 126.741 119,402 117,409

115,876

114,431

104,883

Аргентина
Песо 70.635 48,192 28,167

17,227

15,359

9,617

Австралия
доллар 1.452 1,439 1,340

1,358

1,400

1,345

Бахрейн
Динар 0.377 0,377 0,395

0,395

0,395

0,395

Бразилия
Реальный 5,151 3,946 3.655

3,322

3,632

3,468

Канада
доллар 1.341 1,327 1,297

1,350

1,379

1,329

Каймановы острова
доллар 0,833 0,833 0,833

0,884

0,886

0,885

Китай
юаней 6.900 6,910 6,620

7.030

6.910

6,489

Дания
Крона 6.538 6,670 6,319

6,864

7.000

6,991

Египет
фунтов 15.813 16,809 17,809

18,586

10,462

8,044

Еврозона
евро 0,877 0,893 0,848

0,923

0,940

0,937

Гонконг
доллар 7.756 7,835 7,838

8.105

8,073

8,062

Венгрия
Форинт 307.766 290,707 270,441

285,583

293.083

290.638

Исландия
Крона 135.354 122,571 116,379

111.231

126.256

137,471

Индия
74.102 70,394 68,422

67.809

69.956

66.768

Ирак
Динар 1197.497 1191.254 1193,478

1241.677

1236.453

1231.234

Израиль
Новый шекель 3,438 3,563 3,596

3,746

3,997

4,052

Япония
йен 106.725 109.008 110,424

116.667

113.138

125.911

Ливан
фунтов 1510.677 1510.290 1511.677

1593.969

1593.639

1588.880

Мексика
Песо 21.466 19,246 19,227

19.679

19,435

16,505

Марокко
Дирхам 9,495 9,614 9,389

10,230

10,279

10.206

Новая Зеландия
Доллар 1.540 1,518 1.447

1,465

1.494

1.492

Норвегия
крон 9,413 8,802 8,143

8.606

8,745

8,392

Катар
Риал 3.641 3.641 3,642

3,850

3,791

3,790

Россия
Рубль 72,299 64,687 62,845

60,692

69.685

63.659

Саудовская Аравия
Риал 3.753 3,751 3,753

3,903

3,903

3,903

Сингапур
Доллар 1,379 1,364 1,349

1,437

1,437

1,430

Южная Африка

Рэнд

16.458 14,448 13,258

13,859

15,319

13,281

Южнокорейский
вон 1179.199 1165.697 1100,587

1178,585

1211.121

1179.128

Швеция
крон 9.205 9,457 8,703

8,894

8,910

8,775

Швейцария
Франк 0,939 0,994 0,979

1.024

1.025

1,001

Тайвань
доллар 29.460 30,898 30,152

31,683

33,586

33.089

Таиланд
бат 31,271 31,032 32,317

35,372

36,778

35.679

Тунис
Динар 2.836 2,925 2,71

2,513

2,237

2,044

Турция
Новая лира 7.025 5,685 4,849

3,794

3,146

2,834

Объединенные Арабские Эмираты
Дирхам 3.673 3.673 3.673

3,821

3,821

3,821

Соединенное Королевство
фунт 0,779 0,784 0,750

0,808

0,770

0,681

Венесуэла Боливар (Фуэрте) 236266.507 248486.041 131352.21 10,452 9,447 6.562

Ссылки / связанные темы

Thai Airways продаст 42 самолета и сократит персонал для снижения затрат

Самолет Boeing 777-300ER Thai Airways вылетает из аэропорта Суварнабхуми в Бангкоке 23 февраля 2015 г. REUTERS / Chaiwat Subprasom / File Photo / File Photo

БАНГКОК, 1 ноября (Рейтер) — Thai Airways International Pcl (THAI.BK) продаст 42 самолета и сократит почти треть своих сотрудников в рамках плана по сокращению парка и сокращению расходов, заявил в понедельник глава комитета по реструктуризации.

Авиакомпания, которая находилась в затруднительном положении еще до начала пандемии, переживает реструктуризацию с защитой от банкротства.

Пиясвасти Амрананд, возглавляющий работу, сказал, что продаваемые самолеты старые и не энергоэффективные. По его словам, будет возвращено 16 самолетов, сданных в аренду.

После продажи у авиакомпании будет 58 самолетов четырех типов.

Thai Airways теряет деньги почти каждый год с 2012 года.

Пиясвасти сказал, что авиакомпания планирует добавить больше рейсов, особенно из Европы, в течение следующих нескольких месяцев по мере восстановления путешествий.

В понедельник правительство Таиланда вновь открыло страну для поездок без карантина для вакцинированных туристов. подробнее

Пиясвасти сказал, что Thai Airways сократит количество сотрудников с 21 300 до 14 500 к декабрю 2022 года.

Чтобы помочь с денежным потоком, авиакомпания заключит договор на 25 миллиардов бат (749 долларов США).18 миллионов) кредитное соглашение с финансовыми учреждениями к следующему году и ведутся переговоры с правительством о дополнительных 25 миллиардах батов, сказал он.

За шесть месяцев, закончившихся в июне, авиакомпания получила прибыль в размере 11,1 миллиарда бат (332,63 миллиона долларов) по сравнению с убытком в 28 миллиардов бат за соответствующий период годом ранее после сокращения расходов.

(1 доллар = 33,3700 бат)

Отчетность Chayut Setboonsarng; Под редакцией Санджив Миглани

Наши стандарты: принципы доверия Thomson Reuters.

Spa подает в суд на правительство о возмещении ущерба в размере 200 миллионов бат

преступление

17 августа 2021 г. — 13:06

Шаг вперед, когда группа массажных салонов-спа из более чем 172 человек подала иск против правительства в Гражданский суд. Претензии о возмещении ущерба из-за бесхозяйственности нашли общий ущерб в 200 миллионов бат.

Сегодня (17 августа 64 г.) в 10:00 партия Као Клай во главе с г-жой Сириканья Тансакул, членом списка партии Кав Клай, вместе с юристом.поездка в гражданский суд. Быть посредником в подаче коллективного иска против правительства, чтобы нести ответственность за ущерб тем, кто пострадал от мер по борьбе с Covid-19. подав иск против бизнес-группы массажно-спа

Г-жа Аксика Чантарвинит, как представитель операторов массажа и спа Истец подал иск № 1, сказал, что это представитель операторов массажа и спа. обратился в суд с иском к Минфину и относится к участнику неисправной услуги.Перед тем, как приступить к процессу подачи иска, была претензия по вопросу о требовании компенсации за компенсацию. В том числе для разблокировки несправедливых заказов, например, некоторые предприятия объединяются в кластеры, закрываются на 3 дня, а затем снова открываются. Что касается массажных салонов, то они никогда не появляются кластером, им не разрешается открываться. Сделайте первый пункт, чтобы подать иск о справедливости. Другой вопрос — компенсация, которая так и не была получена. Изначально истцов было 172 человека. Большую часть ущерба нанесло использование ренты без получения дохода.включая альтернативную стоимость получения дохода

Госпожа Аксика также упомянула вопрос о вакцинах. Сначала было заявлено, что профессия массажиста — занятие рискованное. Но когда его попросили сделать вакцину, мне отказали в том, что профессия массажиста не связана с высоким риском, что было огромной проблемой. И все же многие хиропрактики не прошли вакцинацию. ничего не могу получить

Г-н Пхитак Йота, президент Ассоциации консервативного тайского массажа Ярави, сказал, что постановлением правительства было приказано закрыть ее.остановить микробы, чтобы нация принесла в жертву друга. Массажные салоны и спа принесли в жертву достаточно. Но государство никогда не придавало значения массажным салонам и спа. Сегодня он обратился к Гражданскому суду с просьбой о помощи. Какие предприниматели пострадали от 38 госзаказов, многие из них исчерпаны

Мисс Сириканья сказала это из-за того, что не получила компенсацию за ущерб, который недавно пришел к тем, кто находится в системе социального обеспечения. Но он совершенно не пропорционален нанесенному ущербу.Если государство по-прежнему игнорирует страдания таких предпринимателей, это, следовательно, является источником гражданских судебных исков о возмещении конкретного ущерба. За ущерб зарегистрированным операторам стоит более 200 миллионов бат, на которые можно подать иск на сумму менее 200 миллионов бат.

Подача коллективного иска в этом деле является первым коллективным иском, поданным в Гражданский суд. Использование этого метода может привести к тем же нарушениям у операторов. делалось и государством. может получить доступ к правосудию за плату или меньшее бремя, чем подача иска против одного человека за раз, когда такой случай является начальным делом. С этого момента он будет распространяться на другие группы, такие как рестораны, пабы, бары, для родственников умершего.от бесхозяйственности государства

подписывайтесь на хороший контент, как это на

Facebook: https://www.facebook.com/innnews.co.th

Twitter: https://twitter.com/innnews

Youtube: https://www.youtube.com/c/INNNEWS_INN

TikTok: https://www.tiktok.com/@inn_news


Источник: ИНН Новости по www.innnews.co.th.

* Статья переведена на основе содержания INN News сайта www.innnews.co.th. Если есть какие-либо проблемы с содержанием, авторскими правами, оставьте, пожалуйста, отчет под статьей. Мы постараемся обработать как можно быстрее, чтобы защитить права автора. Большое спасибо!

* Мы просто хотим, чтобы читатели получали более быстрый и легкий доступ к информации с другим многоязычным контентом, а не с информацией, доступной только на определенном языке.

* Мы всегда уважаем авторские права на содержание автора и всегда включаем исходную ссылку на исходную статью.Если автор не согласен, просто оставьте отчет под статьей, статья будет отредактирована или удалена по просьбе автора. Спасибо большое! С наилучшими пожеланиями!


.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *