Написание bat файлов
Содержание:
- Как получить короткое (8.3) имя файла?
- Как создать «батник» в операционной системе Windows 7
- Что такое bat и зачем это нужно?
- Что собой представляет BAT-файл
- Запуск программ и основные команды
- Примеры bat файлов
- Что это за упомянутые ранее операторы объединения команд?
- Редактирование bat
- Параметры
- Вопрос по запуску
- Как создать файл .BAT в Windows 7
- Добавляем в файл команду, например, для копирования
- Длинные имена в bat-файлах
- Меняем формат файла и пробуем его запустить
- Как экранировать символ?
- Длинные имена в bat-файлах
Как получить короткое (8.3) имя файла?
«А зачем? – спросите вы – Ведь мы живем в мире Интернета, Web-сервисов и NTFS с длинными именами файлов». Это действительно так, но иногда встречаются программы, которые отчаянно сопротивляются прогрессу, и в частности, не любят имен файлов и полных путей с пробелами. Одной из таких программ, кстати, является утилита build.exe из Windows DDK… В таких ситуациях спасает использование короткого, «беспробельного» DOS-имени для файла.
ПРЕДУПРЕЖДЕНИЕ
Доступ к файлу по короткому имени может быть не всегда возможен. На файловой системе NTFS создание коротких псевдонимов для файлов может быть отключено путем установки в единицу значения «NtfsDisable8dot3NameCreation» в ключе реестра «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem». |
Итак, все же (в предположении, что надругательства над NTFS не было) – как? Внимательный читатель должен был заметить в предыдущем разделе, что при обращении к переменным %0 — %9 можно использовать префикс
%~s1 - expanded path contains short names only |
который нам как раз мог бы помочь. Но есть засада – все эти полезные префиксы нельзя использовать с произвольной переменной окружения, а присваивание переменным %0 — %9 не поддерживается. К счастью, описываемые префиксы можно еще использовать с переменными цикла for, и это дает нам способ достичь требуемого результата. Например, вот так можно получить 8.3-путь к “Program Files”:
for /d %%i in ("%PROGRAMFILES%") do ( set PROGRAMFILESSHORT=%%~si ) echo8.3-имя для каталога "%PROGRAMFILES%" -^> "%PROGRAMFILESSHORT%" |
Этот и другие модификаторы можно использовать и с любой другой формой цикла for, подробнее о которых можно узнать из:
for /? |
Как создать «батник» в операционной системе Windows 7
Сделать этот файлик может любой пользователь на компьютере, который имеет достаточно прав для создания и сохранения файлов. На счет выполнения немного сложнее — выполнение «батника» должно быть разрешено как и отдельно взятому пользователю, так и операционной системе в целом (запрет иногда накладывается в целях безопасности, ведь исполняемые файлы не всегда создаются для благих дел).
Способ 1: использование расширенного текстового редактора Notepad++
Программа Notepad++ является аналогом стандартного Блокнота в операционной системе Windows, значительно превосходя его в количестве и тонкости настроек.
- Файл можно создать на любом диске или в папке. Для примера будет использован рабочий стол. На свободном месте нажмите правую кнопку мыши, наведите курсор на надпись «Создать», в выпавшем сбоку окошке щелчком левой кнопки мыши выберите «Текстовый документ»
Очень важна роль кодировки, в которой будет исполнена команда. По умолчанию используется кодировка ANSI, которую нужно заменить на OEM 866. В шапке программы нажимаем на кнопку «Кодировки», нажимаем на аналогичную кнопку в выпавшем меню, затем выбираем пункт «Кириллица» и нажимаем на «OEM 866». Как подтверждение смены кодировки справа внизу в окне появится соответствующая запись.
Тот код, который вы уже нашли в интернете или написали сами для выполнения определенной задачи, необходимо просто скопировать и вставить в сам документ. На примере ниже будет использована элементарная команда:
shutdown.exe -r -t 00
После запуска этот батник перезагрузит компьютер. Сама команда означает запуск перезагрузки, а цифры 00 — задержку ее выполнения в секундах (в данном случае она отсутствует, то есть перезапуск выполнится незамедлительно).
Когда команда будет записана в поле, наступает самый важный момент — превращение обычного документа с текстом в исполняемый. Для этого в окошке Notepad++ слева вверху выберите пункт «Файл», затем нажмите на «Сохранить как».
К уже заданному ранее слову или фразе без пробела допишется «.BAT», и получится так, как на скриншоте ниже.
После нажатия на кнопку «OK» в предыдущем окне, на рабочем столе появится новый файл, который будет выглядеть как белый прямоугольник с двумя шестеренками.
Способ 2: использование стандартного текстового редактора Блокнот
Он обладает элементарными настройками, которых вполне хватает для создания самых простых «батников». Инструкция абсолютно аналогична предыдущему способу, программы лишь немного отличаются в интерфейсе.
- На рабочем столе двойным щелчком откройте ранее созданный текстовый документ — от откроется в стандартном редакторе.
Команду, которую использовали ранее, скопируйте и вставьте в пустое поле редактора.
В окошке редактора слева вверху нажмите на кнопку «Файл» — «Сохранить как…». Откроется окно Проводника, в котором необходимо указать место сохранения конечно файла. Здесь отсутствует способ задания необходимого расширения с помощью пункта в выпадающем меню, поэтому просто нужно дописать к названию «.BAT» без кавычек, чтобы получилось так, как на скриншоте ниже.
Оба редактора отлично справляются с созданием батников. Стандартный блокнот больше подходит для простых кодов, в которых используются несложные одноуровневые команды. Для более серьезной автоматизации процессов на компьютере необходимы продвинутые батники, которые с легкостью создаются расширенным редактором Notepad++.
Рекомендуется запускать файл .BAT от имени администратора, чтобы не возникало проблем с уровнями доступа к определенным операциям или документам. Количество задаваемых параметров зависит от сложности и назначения задачи, которую необходимо автоматизировать.
lumpics.ru
Что такое bat и зачем это нужно?
Бат – это расширение файла (bat). Наверняка многие юзеры знают, что каждый файл имеет свое расширение. Это последняя строчка после точки в названии. Именно этот «хвостик» нужен для определения системой как музыка, видео, изображение или любой другой. Можете даже поэкспериментировать. Возьмите любую картинку и переименуйте вместе с расширением. Виндовс сразу оповестит, что вы изменяете расширение, и файл может не определяться системой. Согласитесь с запросом и увидите, что ваша картинка уже не отображается как изображение. Если переименовать как прежде, все снова восстановится. Если у вас не видны расширения, необходимо активировать эту функцию в проводнике, во вкладке «вид».
Для Windows бат – это файл с инструкциями на определенные действия, которые заложены в самом бат файле. Пустой файл формата бат запустится, но никаких действий выполнятся, не будет. Батник это набор инструкций для консоли Windows.
Что собой представляет BAT-файл
С точки зрения пользователя компьютера это текстовый файл с соответствующим расширением, но для операционной системы такие файлы особенные – они состоят из ряда команд, которые после запуска интерпретируются и выполняются по определённым правилам. Таким образом, ответ на вопрос, что такое батник для компьютера под управлением ОС Windows, может звучать следующим образом: это набор команд, записанный в текстовом формате, позволяющий сэкономить время на их наборе каждый раз, когда возникнет необходимость. Сленговое название таких файлов – батник, их также называют пакетными файлами.
С помощью таких батников можно автоматизировать целые классы задач:
- осуществлять управление файловой системой компьютера (удалять, создавать, перемещать файлы, каталоги, подкаталоги);
- выполнять последовательность команд с определёнными параметрами, которые могут быть контекстно-зависимыми;
- осуществлять пакетный запуск программ/утилит.
Запуск программ и основные команды
Следующее видео о работе с командами для «батников»:
На официальном сайте Microsoft доступна библиотека, где находится список возможных для запуска команд и приложений
Стоит обратить внимание, что часть из них может не поддерживаться в системах Windows 8 или 10
Следующие команды являются основными для тех, кто решил более углубленно изучить возможности файлов .bat:
- В основном, пользователям нужно немного – настроить запуск определенной программы (или нескольких), запустить одну из функций, настроить раздачу Wi-Fi через ноутбук или отключить компьютер через заданное время. Чтобы запустить программу или сразу несколько, нужно ввести следующее: start “расположение_программы”.
- Если в названиях папок есть пробелы, нужно пометить расположение двойными кавычками: start ” “C:MyfilesMyfile.exe”.
- После прописанного пути, можно добавить свои опции, чтобы программа запускалась вместе с ними. Это также берется в кавычки, таким образом: start “c:windowsnotepad.exefile.txt”
- Следующая интересная функция позволяет загружать «батник» из текущего файла. Для этого нужно воспользоваться оператором call, что выглядит так: call расположение_файла опции
- Полученные параметры во время запуска возможно прочесть из подключаемого файла. К примеру, для вызова файла с опциями потребуется указать: call file.bat опция1 опция2 опция3. Из file.bat можно считать эти операторы и пользоваться ими как путями, чтобы запускать другие приложения подобным образом: echo %1 или Каждой опции присваивается свой номер, к которому добавляется знак процента. В показанном примере результатом является вывод команд отправленных опций в консоль (echo применяется, если нужно вывести текст в консоль).
- В некоторых случаях, перед запуском следующей команды следует выждать время (к примеру, когда первая программа будет полностью запущена). Это делается с помощью команды: timeout /t указать_количество_секунд
- Если есть необходимость запускать программу свернутой или развернутой, можно добавить перед путем к программе параметр MIN или MAX: start /MINc:windowsnotepad.exe.
- Чтобы закрыть окно с командами, когда они будут запущены (впрочем, в большинстве случаев оно будет закрыто, если используется start), в последней строчке нужно добавить exit. Если же консоль так и остается открытой, можно попытаться сделать следующее: cmd /c start /b “” расположение_программы опции.
Стоит учитывать, что окно будет закрыто сразу же, как только выполнятся указанные команды. При необходимости, чтобы увидеть информацию из окна, нужно применить pause. С ней можно остановить закрытие окна до нажатия пользователем любой кнопки из консоли.
Примеры bat файлов
С помощью пакетных файлов можно делать огромное количество различных действий, которые очень сложно/долго, а в некоторых ситуациях, просто невозможно выполнить без использования bat файлов, т.к. необходимо либо приобретать специальный софт под конкретную задачу (пример — массовая конвертация картинок в папке(ах) по ключу в названии, либо самостоятельно писать такую программу на каком-либо языке программирования, что сможет далеко не каждый, да и целесообразность этого, для разового действия минимальна. На нашем сайте есть несколько примеров использования пакетных файлов для решения специализированных задач, которые, возможно, смогут вам помочь.
- Как автоматизировать запуск bat-файлов
- Как автоматически ответить на запрос о подтверждении с помощью bat-файла
- Как выполнить цикл определенное число раз в bat-файле
- Как добавить комментарии в bat-файл
- Как дождаться появления определенного файла в папке с помощью bat-файла
- Как завершить процесс (программу) с помощью bat-файла
- Как запретить повторный запуск приложения с помощью bat-файла
- Как зациклить выполнение команды с помощью bat-файла
- Как из одного bat-файла запустить другой
- Как изменить IP адрес компьютера с помощью bat-файла
- Как изменить дату с помощью bat-файла
- Как изменить значение параметра в реестре с помощью bat-файла
- Как изменить название процессора в Windows с помощью bat-файла
- Как импортировать значения переменных реестра с помощью bat-файла
- Как использовать символ процента в bat-файле
- Как настроить кодировку шрифтов (исправить иероглифы, кракозябры) в bat-файле
- Как отключить вывод на экран команд при выполнении bat-файла
- Как отправить сообщение по сети из bat-файла
- Как переименовать файлы по маске с помощью bat-файла
- Как перенаправить результат выполнения команд в лог-файл с помощью bat-файла
- Как присвоить переменной значение из реестра с помощью bat-файла
- Как проверить наличие прав администратора с помощью bat-файла
- Как сделать автоматическое создание резервной копии данных с помощью bat-файла
- Как сделать резервную копию файлов с сервера FTP с помощью bat-файла
- Как сделать экспорт реестра с помощью bat-файла
- Как сменить аудио устройство по умолчанию с помощью bat-файла
- Как создать бекап на сервере с подстановкой даты в имя архива с помощью bat-файла
- Как создать папку с помощью bat файла
- Как создать папку с именем равным текущей дате с помощью bat-файла
- Как создать паузу перед выполнением следующей команды с помощью bat-файла
- Как создать файл с произвольным именем с помощью bat-файла
- Как удалить файлы определенного типа с помощью bat-файла
- Как узнать имя компьютера с помощью bat-файла
- Как узнать разрядность версии Windows с помощью bat-файла
Что это за упомянутые ранее операторы объединения команд?
Это операторы &, && и ||. Они практически совсем не освещены в документации, но полезны в повседневности. Они позволяют объединять несколько команд в одну, т.е. примерно так:
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
-
Чтобы отредактировать уже созданный файл bat, щелкнуть на нем мышью (правой), использовав пункт «Изменить».
-
Файл откроется в выбранной по умолчанию для этого типа файлов программе.
Программы редактирования
Рядовому пользователю для взаимодействия с bat-файлами, возможно, хватит функционала простого «Блокнота», но, к примеру, системному администратору нужен редактор помощнее. Работать с bat можно в любых редакторах текстов, нацеленных на взаимодействие с кодом, в частности, в «Notepad++» или «Notepad2».
Из специализированного софта можно отметить утилиту Dr.Batcher, специально разработанную для создания bat, и включающую в состав визуальный редактор, подсвечиваемый синтаксис, закладки, специальные команды и нумерацию страниц.
Параметры
- {%переменная|%%переменная}
-
Обязательный параметр. Замещаемый параметр. Используйте %переменная для
выполнения команды for из командной строки. Используйте %%переменная
для выполнения команды for в пакетном файле. Переменные учитывают регистр и могут
быть представлены со значением альфа, например, %A, %B или %C. - (множество)
-
Обязательный параметр. Задает один или несколько файлов, каталогов, диапазон значений или
текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными. - команда
-
Обязательный параметр. Задает команду, которая будет выполнена для каждого файла, каталога
диапазона значений или текстовой строки, включенной в указанный параметр
(множество). - ПараметрыКоманднойСтроки
- Задает параметры командной строки, которые используются с указанной командой.
- /?
- Отображение справки в командной строке.
Вопрос по запуску
Перед решением основной дилеммы необходимо изучить версии активации командной строки. Варианты отличаются в зависимости от вида винды (XP, семёрка, восьмёрка или десятка).
Для вызова системного окошка со строкой нужны такие действия:
- Зажать синхронно две кнопки: «Win» (обозначается на клавиатуре флажком) и букву R. Принцип работает на Windows 7 и XP. На восьмёрке используется сочетание кнопок «Win» + X (английская буква).
- В появившейся графе пропишите cmd и нажмите «Enter».
Можно задействовать меню «Пуск». Наводите курсор в нижний левый угол и нажимаете левую кнопку мыши. Выберите графу «Все программы». Перейдя в раздел под названием «Стандартные», выберите «Командную строку».
Но такой вариант оптимален только для версий системы до Windows 10.
Сама работа в командной строке происходит по одному сценарию без зависимости от операционной системы. Отличия касаются только её вызова.
Например, если вас интересует, как создать файл в командной строке Windows 10, то в первую очередь вызовите её.
Для этого в меню «Пуск» выбираете разделе «Служебные»,а после этого – командную строку.
Есть и универсальный способ вызова для всех ОС. Он выражается в следующем алгоритме:
- Используя проводник, открыть диск с системной папкой (как правило его буквенное обозначение C) с виндой.
- Открывается папка «Windows», а в ней -«System32». Там и находится файл «cmd.exe». Это та самая командная строка.
- Этот файл запускается от администратора.
После данных действий можно создавать файл с применением команд.
Как создать файл .BAT в Windows 7
Каждый день пользователь выполняет за компьютером огромное количество различных операций с файлами, службами и программами. Некоторым приходится выполнять однотипные простые действия, которые вручную занимают значительное количество времени. Но не стоит забывать, что перед нами стоит мощная вычислительная машина, которая при правильной команде в состоянии выполнить все сама.
Самым примитивным способом автоматизации любого действия является создание файла с расширением .BAT, в простонародье именуемого как «батник». Это очень простенький исполняемый файл, который при запуске выполняет заранее заданные действия, после чего закрывается, ожидая следующего запуска (если он многоразовый). Пользователь с помощью специальных команд задает последовательность и количество операций, которые «батник» должен выполнить после запуска.
Добавляем в файл команду, например, для копирования
Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводиться по средством консоли (cmd) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:
Разъясняю что тут к чему:
- xcopy — это сама команда;
- C:\test\testcopy — это источник, т.е. папка откуда копируются файлы и каталоги;
- C:\test\backup — это результат, т.е. место, куда будут скопированы файлы и каталоги;
- /f /i /y /s — дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).
Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.
Далее, касательно синтаксиса (какие дополнительные параметры есть, какие можно дописать и зачем они нужны).
Какие есть (т.е. те, что я указал в данном примере):
- /f — выводит имена исходных файлов и файлов-результатов в процессе копирования
- /i — создает новый каталог в случае, если тот отсутствует в конечном пути
- /y — перезаписывает файл в случае, если он уже есть
- /s — копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
Далее нам надо сменить формат файла с txt на bat. Делается это следующим образом.
Длинные имена в bat-файлах
Иногда в bat встречаются программы, не работающие с длинными именами с пробелами – обычно это некоторые старые программы для MS-DOS. В этих случаях помогает использование коротких DOS-имен без пробелов, а также кавычек.
Правила записи коротких DOS-имен (формат 8.3): задействуется шесть начальных символов имени папки, не учитывая пробелы, далее указывается ее номер по порядку через ~. Например: start C:Program FilesMozilla Firefoxfirefox.exe преобразуется в: start C:Progra~1Mozill~1firefox.exe.
Возможна ситуация, когда в одном каталоге имеются несколько папок с одинаковыми символами в названии.
В одном каталоге имеются несколько папок с одинаковыми символами в названии
Их короткие имена в этом случае должны нумероваться в соответствии с алфавитным порядком папок:
- Mozill~1;
- Mozill~2;
- Mozill~3.
Однако, если Mozilla Firefox будет удален с компьютера, следующие за Mozill~1 записи работать не будут. Поэтому, короткие DOS-имена – не лучший вариант решения проблемы длинных имен. Создание имен этого типа на NTFS также бывает отключено в реестре Windows.
Для решения проблемы длинных имен запись также может быть заключена в кавычки. Кавычки «», располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом, включающим какой-либо заголовок или только кавычки.
Кавычки, располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом
Однако, в некоторых случаях кавычки не работают совсем. В этом случае возможно использование команды изменения текущего рабочего каталога Chdir (CD). Запись start firefox.exe приобретает в этом случае следующий рабочий вид.
Запись start firefox.exe приобретает рабочий вид
Справка. Команда CD – пожалуй, единственное универсальное решение вопроса длинных имен в bat-файлах.
Меняем формат файла и пробуем его запустить
Сначала открываем «Мой компьютер», там переходим «Сервис» — «Свойства папки» — «Вид» и снимаем галочку «Скрывать расширение для зарегистрированных типов файлов».
Жмем «Применить» и «Ок». Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем «Переименовать» и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).
В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):
Собственно, все, что нам остается — это запустить этот файл простым кликом по нему мышки.
Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:
Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на .txt и открыв любым текстовым редактором.
Как экранировать символ?
В командном языке 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% echoHello World! >>%OUTPUTFILE% echo</body> >>%OUTPUTFILE% echo</html> >>%OUTPUTFILE% |
К сожалению, при попытке запуска этого «чуда инженерного разума» нас постигнет неудача в виде сообщения об ошибке
> was unexpected at this time. |
Оно и понятно: командный интерпретатор не в силах разобраться, где его просят вывести на экран символ HTML-тега, а где перенаправить вывод. В нормальных языках программирования эта проблема обычно решается обрамлением строковых литералов кавычками. Отчасти это помогает и в bat-файлах. Но лишь отчасти. Выполнение строки
echo "<html>" >%OUTPUTFILE% |
приведет к тому, что в выходной файл будут записаны и сами кавычки. Это явно не совсем то, что требуется.
К счастью, есть один малоизвестный способ, позволяющий добиться требуемого результата. Символ ^ позволяет экранировать любой другой символ с безусловным приоритетом. Таким образом, вышеприведенный пример генерации 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% echoHello World! >>%OUTPUTFILE% echo^</body^> >>%OUTPUTFILE% echo^</html^> >>%OUTPUTFILE% |
Таким же способом можно экранировать любой другой специальный символ. Очевидно, можно экранировать и сам ^. Не очень эстетично, зато дешево и практично. Слово «надежно» я пропустил умышленно…
Длинные имена в bat-файлах
Иногда в bat встречаются программы, не работающие с длинными именами с пробелами – обычно это некоторые старые программы для MS-DOS. В этих случаях помогает использование коротких DOS-имен без пробелов, а также кавычек.
Правила записи коротких DOS-имен (формат 8.3): задействуется шесть начальных символов имени папки, не учитывая пробелы, далее указывается ее номер по порядку через ~. Например: start C:Program FilesMozilla Firefoxfirefox.exe преобразуется в: start C:Progra~1Mozill~1firefox.exe.
Возможна ситуация, когда в одном каталоге имеются несколько папок с одинаковыми символами в названии.
В одном каталоге имеются несколько папок с одинаковыми символами в названии
Их короткие имена в этом случае должны нумероваться в соответствии с алфавитным порядком папок:
- Mozill~1;
- Mozill~2;
- Mozill~3.
Однако, если Mozilla Firefox будет удален с компьютера, следующие за Mozill~1 записи работать не будут. Поэтому, короткие DOS-имена – не лучший вариант решения проблемы длинных имен. Создание имен этого типа на NTFS также бывает отключено в реестре Windows.
Для решения проблемы длинных имен запись также может быть заключена в кавычки. Кавычки «», располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом, включающим какой-либо заголовок или только кавычки.
Кавычки, располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом
Однако, в некоторых случаях кавычки не работают совсем. В этом случае возможно использование команды изменения текущего рабочего каталога Chdir (CD). Запись start firefox.exe приобретает в этом случае следующий рабочий вид.
Запись start firefox.exe приобретает рабочий вид
Справка. Команда CD – пожалуй, единственное универсальное решение вопроса длинных имен в bat-файлах.