Как через батник запустить программу

В BAT файлах можно использовать любые команды MS DOS. Смысл нашей программы будет в том, чтобы она создала папочку и скопировала туда содержимое текущей папочки. Пишем:

echo off
cls
echo start backup
mkdir backup
copy *.* backup
echo end backup

И смотрим в проводнике:

Вот так, все получилось ! И не надо постоянно копировать много файлов и создавать папочку. Совершенно не обладая навыками программирования Вы можете все-таки облегчить себе жизнь.

Обработка параметров в BAT файле

Вызывая из командной строки bat файл:

или из другого файла:

call 6.bat 18012002

Внутри этого BAT файла Вы можно обработать параметры. Для получения параметра мы должны использовать символ % и номер параметра. MS DOS заменит эту конструкцию переданным параметром. Давайте пробовать:

echo off
cls
echo start backup
mkdir %1
copy *.* %1
echo end backup

Команды BAT файлов

Специальных команд, которые используются в BAT файлах не много. Именно специальных, которые могут пригодиться при создании логики командного файла. Конечно, эти команды относятся к внутренним командам MS DOS и могут использоваться в командной строке, но все-таки эти команды обретают смысл только в пакетных файлах.

Как добавить BAT-файл или программу в автозагрузку Windows 10 (7,8.1)


call Вызов одного пакетного файла из другого.
echo Вывод сообщений и переключение режима отображения команд на экране.
for Запуск указанной команды для каждого из файлов в наборе.
goto Передача управления в отмеченную строку пакетного файла.
if Оператор условного выполнения команд в пакетном файле.
pause Приостановка выполнения пакетного файла и вывод сообщения
rem Помещение комментариев в пакетные файлы и файл CONFIG.SYS.
shift Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.

Кстати Вы можете легко получить подсказку по каждой этой команде в сеансе MS DOS используя ключ /?

Читайте также:
Как активировать установленную программу

Как работают BAT файлы

Итак, у нас есть внутренние команды и внешние. После того как в BAT файле находится команда, то сначала проверяется есть ли такая команда внутри command.com. Например echo — это внутренняя команда и исполняет ее command.com. Если же эта команда не найдена, то будет произведен поиск файла с расширением exe или com во всех каталогах указанных в переменной среды PATH. Смотрите на рисунок ниже.

Команды echo и cls будут обработаны внутри command.com. А команда edit.com не будет обработана (кстати расширение можно не указывать) раз такой команды нет, то будут исследованы все доступные пути на предмет файлов с таким названием. Если файл будет найдет, то он будет запущен. Это очень важно, так как позволяет нам очень быстро используя простые средства разработки типа Turbo C++ или Turbo Pascal создавать расширения стандартных команд. Сразу скажу, что подобные программы должны создаваться для MS DOS, а современные средства разработки типа Visual C++ 6.0 не умеют создавать эти простенькие программы.

Использование PAUSE

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

Сам код и EXE есть в проекте. Как этим EXE можно воспользоваться ? Смотрите:

runbats.exe times.txt temp.bat start.bat

Первый параметр — это файл откуда брать строку, второй параметр — это какой BAT файл сформировать, третий параметр — это какой BAT файл вызывать. Результат работы будет такой.

Борьба с недостатками окончание

Нам осталось только сложить все в месте. Пишем backup.bat:

times.exe times.txt
runbats times.txt temp.bat start.bat
temp.bat

Получить дату в файл, сформировать BAT файл с параметрами и запустить его. В результате работы все получится.

Вся идея в том, что последний BAT файл, который мы запускаем формируется динамически. А весь код, который нужно выполнить пишется в Start.bat. Если Вы хотите, чтобы копирование производилось на сервер, используйте UNC пути (см. «Шаг 18 — Universal Naming Convention — UNC»). Вот, например, BAT файл, который у меня работает.

Читайте также:
Какая программа открывает файлы msi

mkdir \Serverswork%1
copy *.* \Serverswork%1

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

Борьба с недостатками

Одним из недостатков BAT файлов является то, что в результате работы какой-то программы мы не можем получить ее результат, кроме кода возврата. Ну, например, мы хотим, чтобы при запуске BAT файла производилось резервное копирование в папочку. Это мы можем сделать, а вот как сделать так, чтобы имя папки формировалось в соответствии с текущей датой.

Умея немного программировать для DOS это можно сделать. Напишем программу Times.exe, которая будет записывать в указанный файл текущую дату. Я использовал Borland C++ 3.1, Вы можете использовать все, что может делать программы в формате MS DOS. Вот код.

#include «stdio.h»
#include «process.h»
#include «FCNTL.H»
#include «string.h»
#include «io.h»

int main(int argc, char *argv[ ])
printf(«First Steps Site(C) 2002n»);
if (argc==4)
int ifile;
int ofile;
int rez;
ifile=_open(argv[1],O_RDONLY);
if (ifile!=-1)
char buffer[255];
rez=read(ifile,buffer,254);
if (rez!=-1)
printf(argv[1]);
printf(» «);
printf(argv[2]);
printf(» «);
buffer[rez]=0;
printf(buffer);
printf(«n»);
ofile=open(argv[2], O_CREAT | O_WRONLY | O_TRUNC);
if (ofile!=-1)
write(ofile,argv[3],strlen(argv[3]));
write(ofile,» «,2);
write(ofile,buffer,strlen(buffer));
close(ofile);
>
else
printf(«error createn»);
return 1;
>
>
else
printf(«error readn»);
return 1;
>
>
else
printf(«error open file n»);
return 1;
>
return 0;
>
else
printf(«error parametrsn»);
return 1;
>
>

Сам код и готовый EXE находится в проекте. Использовать его достаточно легко, надо создавать BAT файл, в котором передается параметр.

times.exe times.txt

В результате работы будет создан текстовый файл, в котором находится текущая дата.

Источник: pontin.ru

Что такое командный файл

cmd

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

Читайте также:
Как перенести программы во второе пространство

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

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

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

Например, следующий код создает новую папку с именем текущей даты на системном диске компьютера и экспортирует из реестра Windows куст HKEY_CURRENT_USERSoftware в файл с именем backup.reg.

MD %SYSTEMDRIVE%%date% reg export «HKEY_CURRENT_USERSoftware» «%SYSTEMDRIVE%%date%backup.reg» /y

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

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

Кириллица в BAT файле

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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru