10 ответов
Лучший ответ
Вы используете для запуска программы от имени конкретного пользователя:
80
Kerrek SB
25 Июл 2011 в 02:54
Используйте полный физический диск \ путь к целевому пакетному файлу в ярлыке Свойства.
Это не работает в Windows 10, если вы используете дополнительные диски, как я пытался сделать сначала …
Samiamias
9 Дек 2018 в 09:51
Когда вы используете аргумент , он запрашивает пароль один раз, а затем никогда не запрашивает его снова. Даже если вы поместите его в другую программу, он не будет запрашивать пароль. Пример вашего вопроса:
5
Anonymous
23 Мар 2021 в 17:41
-
Мои эксперименты показывают, что команда runas должна включать домен администратора (по крайней мере, в настройках среды моей организации):
Если вы еще не знаете домен пользователя с правами администратора, запустите экземпляр командной строки от имени пользователя с правами администратора и введите следующую команду:
-
Ответы, предоставленные как Керрек С.Б. , так и Эд Гривз , будут выполнять целевой файл от имени администратора, но, если файл является командным сценарием (файл .bat) или сценарием VB (файл .vbs), который пытается работать в среде обычного пользователя, входящего в систему (например, изменяя записи реестра), вы можете не получить желаемых результатов, потому что среда, в которой фактически запускается сценарий, будет принадлежать пользователю с правами администратора, а не пользователь с нормальным входом! Например, если файл представляет собой сценарий, который работает с кустом реестра HKEY_CURRENT_USER, затронутым «текущим пользователем» будет пользователь с правами администратора, а не пользователь с обычным входом.
5
pstraton
3 Дек 2019 в 20:06
Конвертируйте ваш командный файл в .exe с помощью этого инструмента: http://www.battoexeconverter.com/, тогда вы можете запустить его как администратор
5
xxedxx
5 Апр 2013 в 14:56
Затем
6
mattn
30 Июн 2017 в 09:26
Вы можете использовать nircmd.exe команда поднять
Справочник по командам NirCmd — поднять
Только для Windows Vista / 7/2008: запускать программу с правами администратора. Если содержит один или несколько пробелов, вы должны заключить их в кавычки.
Примеры:
PS: я использую его на win 10, и он работает
8
Dheeraj Bhaskar
16 Май 2017 в 12:25
Если вы можете использовать стороннюю утилиту, вот утилита командной строки .
Исходный код и двоичные файлы доступны на GitHub.
Это описание использования:
12
aphoria
24 Мар 2021 в 13:22
Просто добавьте это в начало вашего файла летучей мыши:
Он повысится до уровня администратора, а также останется в правильном каталоге. Проверено на Windows 10.
54
Sire
26 Сен 2018 в 12:24
Другой ответ требует, чтобы вы вводили пароль учетной записи администратора. Кроме того, запуск под учетной записью в группе администраторов отличается от запуска от имени администратора , см .:
Инструкции для Windows 7
Чтобы работать от имени администратора, создайте ярлык для командного файла.
- Щелкните правой кнопкой мыши командный файл и нажмите «Копировать».
- Перейдите туда, где вы хотите, чтобы ярлык
- Щелкните правой кнопкой мыши фон каталога
- Выберите «Вставить ярлык»
Затем вы можете установить ярлык для запуска от имени администратора:
- Щелкните правой кнопкой мыши ярлык
- Выберите Свойства
- На вкладке «Ярлык» нажмите «Дополнительно».
- Установите флажок «Запуск от имени администратора».
- Нажмите ОК, ОК
Теперь, когда вы дважды щелкните ярлык, он запросит подтверждение UAC, а затем Запуск от имени администратора (который, как я сказал выше, отличается от запуска под учетной записью в группе администраторов)
Проверьте снимок экрана ниже
Примечание. Когда вы сделаете это для запуска от имени администратора, текущий каталог (путь) не будет таким же, как у файла bat. Это может вызвать некоторые проблемы во многих случаях, когда файл bat ссылается на относительные файлы рядом с ним. Например, в моей Windows 7 текущим каталогом будет SYSTEM32 вместо местоположения файла bat! Чтобы обойти это, вы должны использовать
Или лучше
Чтобы убедиться, что каталог cur находится по тому же пути, что и файл bat.
387
Danny Beckett
11 Ноя 2018 в 02:34
Как создать папку с именем равным текущей дате
Достаточно часто необходимо создавать папку с именем равным текущей дате и затем копировать в нее, например, бэкап. Есть насколько вариантов создания такой папки:
MD %SYSTEMDRIVE%\%date:~-10%
Такая команда создаст в корне системного диска папку с именем равным текущей дате. Эта команда не сработает, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, поможет один из следующих скриптов:
md %systemdrive%\%date:~0,2%_%date:~3,2%_%date:~6,4%
или
md %systemdrive%\%date:~6,4%_%date:~3,2%_%date:~0,2%
Во втором случае, папки будут сортироваться по алфавиту.
Как вариант, можно рассмотреть добавление к имени файла текущей даты:
@echo off for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%4.%%3.%%2 ren test.txt test%mydate%.txt
Имя файла test.txt будет переименовано в test2005.03.05.txt
Запуск программы под учетной записью админстратора с учетной записи обычного пользователя
Для этой цели сгодится программа RunAs, которая идет в составе Windows. Для удобства её использования проще всего будет создать cmd файл, в который следует поместить следующее:
Вместо Домена пользователя и Пользователя вводим данные учетной записи пользователя, который обладает правами администратора в домене, или на компьютере (в таком случае, вместо Домена пользователя следует писать имя компьютера). Вместо Путь к программе соответственно пишем путь к нужному exe файлу.
Сохраняем этот файл, и запускаем. Если все прошло верно, то при первом запуске bat файла, будет запрошен пароль для указанного пользователя, однако уже при повторном запуске никакого запроса пароля не потребуется — для этого используется параметр /SAVECRED
.
Оценить статью
Часть третья. Резервное копирование при помощи батников
Резервное копирование данных — полезное и оттого весьма распространенное явление. Существует большое количество программ, отличающихся друг от друга функционалом, условиями распространения, уровнем (глубиной вопроса) и т.д. Бесспорно, пользоваться хорошей и красивой программой удобно и приятно, но если ваши задачи не слишком сложны, то элементарное создание бэкапов можно организовать и без использования стороннего софта, исключительно средствами ОСи.
Для копирования каких-либо данных используется команда copy (копирование файла/файлов) или xcopy (копирование каталогов). Т.е., допустим, нам необходимо делать бэкап содержимого папки, в которой находятся ваши данные к дипломной работе (материалы, приложения, черновик самой работы и т.д.). В этом случае текст будет следующим
@echo off chcp 1251 xcopy «D:\diplom\*.*» «E:\backup\diplom\*.*»
Где D:\diplom\ — папка расположения всех материалов к диплому, а E:\backup\diplom\ — конечная директория резервной копии. Создаём батник, кидаем его в автозагрузку (пуск — все программы — автозагрузка), и при каждом включении компьютера будет создаваться резервная копия (рк).Чуть усложним. Сделаем, чтобы при включении ПК старые данные сохранялись в папочке diplom_old, а новые в папочке diplom. Тогда батник будет иметь вид
@echo off chcp 1251 del «E:\backup\diplom_old\» /s /q rmdir «E:\backup\diplom_old\» /s /q rename «E:\backup\diplom\» «diplom_old» xcopy «D:\diplom\*.*» «E:\backup\diplom\*.*»
del удаляет ранее созданную вторую рк. rmdir переименовывает первую рк во вторую. xcopy создаёт новую рк. Атрибут /s применяет команду ко всем подкаталогам, атрибут /q отключает запрос на подтверждение действий.Если в двух копиях смысла нет, можно сделать так, чтобы заменялись только те файлы, которые были изменены, те же, которые не изменились, либо вообще были удалены из исходной папки, затронуты не будут. Для этого пишем следующее
@echo off chcp 1251 xcopy «D:\diplom\*.*» «E:\backup\diplom\*.*» /E /F /H /R /K /Y /D
Создание бэкапа в архиве
Ну и последнее, что здесь стОит рассмотреть, наверное, на данном этапе — это бэкапы в архиве Рассмотрим изменённую предыдущую ситуацию. Допустим, нам надо, чтобы при каждом включении ПК создавалась копия папки, запакованная в архив. Нам необходимо в автозагрузку положить батник со следующим содержимым
@echo off chcp 1251 c:\PROGRA~1\WinRAR\WinRAR.exe a -o+ -agDD-MMM-YY–HH-MM-SS «E:\backup\» «D:\diplom\»
Архив папки D:\diplom будет создаваться в E:\backup, именем будет дата и время создания архива, т.е., например 16-Aug-12–14-06-53
к содержанию
Поставить пароль на архив
С помощью данного способа можно запаролить папку с любыми типами файлов, при этом есть возможность скрыть сам факт того, что в архиве есть файлы определенного формата.
Окно введения кода будет вылетать еще до того, как откроется архив, поэтому узнать о его содержимом невозможно, если пользователь не знает комбинации. Пароль на архив без программ – самый простой способ защиты папок.
Совет!
Функция установки пароля на архив не требует предварительной установки дополнительного программного обеспечения, необходимо лишь иметь предустановленные бесплатные программы WinRAR или 7-ZIP.
Чтобы добавить нужную папку в архив и запаролить ее, следуйте приведенной ниже инструкции:
Щелкните на интересующей вас папке правой кнопкой манипулятора и добавьте ее в архив, как показано на рисунке;
Процесс добавления папки в архив
Сразу после того, как вы выбрали действие «добавить в архив», появится окно с различными настройками параметров созданного архива. Перейдите во вкладку с дополнительными параметрами и найдите кнопку для установки пароля, она показана на рисунке;
Окно дополнительных параметров и настроек создаваемого архива
Нажмите на кнопку, которая позволяет установить пароль.
После этого действия моментально появится небольшое окошко ввода. Новый код необходимо ввести два раза (для проверки правильного введения). Также вы можете поставить галочку возле параметра шифровки имен файлов.
Таким образом, сторонние пользователи не смогут ничего узнать о типе скрываемы файлов.
Процесс установки пароля для архива
После попытки открыть архив, видим, что сначала необходимо ввести код и только потом можно просматривать, а также редактировать его содержимое.
Попытка получения доступа к запароленому архиву
Данный способ установки кода является самым простым и достаточно эффективным. Однако, для его реализации понадобится наличие на компьютере одного из архиваторов.
Также, если код будет забыт или утерян, восстановить содержимое архива станет достаточно сложной задачей для пользователя. Именно поэтому следует хранить резервную копию защищаемых файлов, к примеру, на облачном хранилище.
Вышеуказанным способом можно также запаролить архив на флешке.
Когда истекает пароль пользователя в AD, оповещаем пользователей о необходимости сменить пароль
В этой статье мы покажем, как с помощью PowerShell узнать, когда истекает пароль учетной записи пользователя в Active Directory, установить бессрочный пароль для учетной записи (PasswordNeverExpires = True) и заблаговременно оповестить пользователей о необходимости сменить пароль.
Если срок действия пароля пользователя в домене истек, учетная запись не блокируется, но не может использоваться для доступа к доменным ресурсам до тех пор, пока пользователь не сменит свой истекший пароль на новый. Чаще всего проблемы с истекшими паролями возникает у удаленных пользователей, которые не могут сменить свой пароль стандартными средствами.
Текущие настройки политики срока действия паролей в домене можно получить с помощью команды PowerShell
В нашем примере максимальный срок действия пароля пользователя в домене – 60 дней.
Как создать batch файл?
Откройте блокнот и наберите две следующих строки:
@echo This batch file @pause
Выберите Файл — Сохранить как, выберите Тип файла — Все файлы, в поле Имя файла введите 1.bat и сохраните его в корне диска С, например. Теперь откройте диск С и запустите файл 1.bat. На экран будет выведено две строки.
This batch file Нажмите любую клавишу для продолжения...
После нажатия любой клавиши окно закроется, т.к. bat-файл выполнен.
Обратите внимание, что символ собаки перед каждой командой в bat-файле указывает на то, что саму команду выводить на экран не надо, а нужно вывести только результат ее работы. Чтобы поэкспериментировать удалите символ собаки из начала каждой строки, сохраните и запустите полученный bat файл.
Как изменить IP адрес компьютера из пакетного файла
IP адрес можно изменить при помощи команды netsh.
Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды
netsh interface ip show address
Результат работы этой команды — отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET.
Предположим, что нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом:
netsh interface ip set address name="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1
После выполнения этой команды у интерфейса FASTNET IP адрес сменится на 192.168.1.42.
Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?
Часть пятая. Прочие возможности bat-файлов
Возможностей, на самом деле, огромное множество. Здесь для примера рассмотрим некоторые из них.
@echo off chcp 1251 dir >file.txt
После выполнения этого файла, в папке, откуда он запускался, будет создан файлик file.txt, содержащий перечень всех файлов и папок в этом каталоге с указанием размера и даты последнего изменения. Можно преобразовать этот файл до вида
@echo off chcp 1251 dir /S "c:\" >"X:\file.txt"
/S заставит батник показать содержимое не только каталога, но и всех подкаталогов.c:\ поможет отобразить содержимое не того каталога, откуда запускается бат-файл, а нужного нам.X:\file.txt сохранит конечный файл со списком содержимого в указанное нами место;
Запуск файлов из командной строки
Очень часто полезным оказывается возможность запуска объектов из командной строки (в данном случае уже из бат-файлов). Причем как программ, так и других видов файлов (графических изображений, медиафайлов, текстовых документов и т.п.)
К примеру, если в автозагрузку добавить текстовый документ, то при включении ПК после загрузки системы вы его сразу увидите. Либо откроется плеер и будет проигрывать соответствующий трек. (Подробнее про способы добавления файлов в автозагрузку вы можете прочитать в статье: Автозагрузка. Добавление приложений в автозагрузку Windows)
Для того, чтобы это реализовать, нужно просто в теле бат-файла прописать точный путь до необходимого объекта. Например
@echo off chcp 1251 "c:\Документы\напоминание.doc"
Для системных же программ нужно указать лишь её обозначение.
@echo off chcp 1251 calc
При выполнении этого батника откроется калькулятор. В данном случае строчку chcp 1251 можно опустить (как и в некоторых ситуациях из примеров выше), однако если уж стандартизировать все наши пакетный файлы, то её можно и оставить, вреда не будет.
Set-Content
Set-Content — это командлет обработки строк, который записывает новое содержимое или заменяет содержимое в файле. Set-Content заменяет существующее содержимое и отличается от командлета Add-Content, который добавляет содержимое в файл. Чтобы отправить контент в Set-Content, вы можете использовать параметр -Value в командной строке или отправить контент через конвейер.
Например, следующие команды равнозначны:
Get-Help about_Comparison_Operators -Full > man.txt Get-Help about_Comparison_Operators -Full | Set-Content man.txt
Вместо Set-Content вы можете использовать встроенный псевдоним этой команды «sc».
Set-Content предназначен для обработки строк. Если вы передаёте нестроковые объекты по конвейеру Set-Content, он преобразует объект в строку перед её записью. Для записи объектов в файлы используйте Out-File.
Командлет Set-Content разработан для работы с данными, предоставляемыми любым провайдером. Чтобы вывести список поставщиков, доступных в вашем сеансе, введите
Get-PsProvider
Имя файла можно указать с опцией -Path, например, следующие команды равнозначны:
Get-Help about_Comparison_Operators -Full | Set-Content man.txt Get-Help about_Comparison_Operators -Full | Set-Content -Path man.txt
Опции -Path можно найти применение, поскольку она поддерживает подстановочные символы, например:
Get-Help about_Comparison_Operators -Full | Set-Content -Path man.txt
Предыдущая команда НЕ означает, что будет созданы 3 файла с именами man1.txt, man2.txt, man3.txt и одинаковым содержимым. Эта команда означает, что будет выполнен поиск файлов по указанному образцу, и если таких файлов нет, то программа завершиться ошибкой.
При рабоче с группой файлов вы можете комбинировать с опцией -Path опцию -Exclude (исключить файлы по указанному шаблону) и опцию -Include (включить файлы по указанному шаблону). Обе эти опции также поддерживают подстановочные знаки.
При записи в файл, в конец будет добавлен символ перехода на новую строку. То есть если в файл будут добавлены другие данные, то они будут записаны с новой строки. Если вы не хотите, чтобы добавлялся символ новой строки, то используйте опцию -NoNewline. Если для формирования вывода используется несколько строк, то по умолчанию они разделяются пробелом, эта опция также отменяет вставку пробелов между строк.
Выше показаны примеры передачи строк для сохранения в файл по контейнеру (трубе), строку или объект также можно указать с опцией -Value:
Set-Content -Value "String to save" str.txt
По умолчанию Set-Content не выводит на экран сохраняемые строки, вы можете одновременно с сохранением файла вывести содержимое по конвейеру, для этого добавьте опцию -PassThru. Если в конвейере отсутствуют последующие командлеты, то содержимое будет показано в стандартном выводе (в консоли).
Опция -AsByteStream указывает, что содержимое следует читать как поток байтов. Этот параметр был введён в PowerShell 6.0. Предупреждение возникает при использовании параметра -AsByteStream с параметром -Encoding. Параметр AsByteStream игнорирует любую кодировку, и выходные данные возвращаются в виде потока байтов.
Опция -Encoding задаёт тип кодировки для целевого файла. Значение по умолчанию — UTF8NoBOM. Кодировка — это динамический параметр, который поставщик FileSystem добавляет в Set-Content. Этот параметр работает только на дисках с файловой системой. Допустимые значения этого параметра следующие:
- ASCII: использует кодировку для набора символов ASCII (7-бит).
- BigEndianUnicode: кодирует в формате UTF-16, используя порядок байтов с прямым порядком байтов.
- OEM: использует кодировку по умолчанию для MS-DOS и консольных программ.
- Unicode: кодируется в формате UTF-16 с использованием порядка байтов с прямым порядком байтов.
- UTF7: кодирует в формате UTF-7.
- UTF8: кодирует в формате UTF-8.
- UTF8BOM: кодирует в формате UTF-8 с меткой порядка байтов (BOM)
- UTF8NoBOM: кодирует в формате UTF-8 без метки порядка байтов (BOM)
- UTF32: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр -Encoding также позволяет использовать числовые идентификаторы зарегистрированных кодовых страниц (например, «-Encoding 1251») или строковые имена зарегистрированных кодовых страниц (например, «-Encoding «windows-1251″».
Как отправить сообщение из bat-файла
Когда пакетный файл исполняется на одной из машин в сети, то удобно проинформировать администратора об окончании его выполнения при помощи сообщения, отправленного на машину администратора. Сделать это можно, включив в пакетный файл команду
net send name Message text
Где name имя машины или пользователя, которому адресуется сообщение, а Message text — текст сообщения. После выполнения этой команды пользователю name будет отправлено сообщение.
Обратите внимание на то, что при использовании в тексте сообщения кириллицы текст должен быть набран в кодировке MS-DOS (866 кодовая страница). Иначе сообщение придет в виде нечитаемых символов
Набрать текст в кодировке DOS можно при помощи любого текстового редактора, поддерживающего эту кодировку. Это может быть, например, FAR. Откройте в FAR пакетный файл на редактирование (F4) и нажмите кнопку F8. В верхней строке редактора должна быть указана кодировка DOS, а снизу, у подсказки о быстрых клавишах, у клавиши F8 должна быть надпись Win, говорящая о том, что текущая кодировка DOS и для переключения в кодировку Win надо нажать F8.
Как создать файл с произвольным именем из bat файла
Для создания файла в процессе выполнения пакетного файла используется символ перенаправления. Он выглядит так:
>
Т.е. чтобы создать файл нужно перенаправить поток с экрана в файл. Сделать это можно при помощи следующей команды:
@echo Start file>C:\1.txt
После выполнения этой команды в корне диска С будет создан текстовый файл со строкой Start file. При создании файла в его имени можно использовать системные переменные или их части. Например, можно создать файл-отчет о работе bat файла с именем, равным дате запуска bat файла. Для этого можно использовать следующие строки в bat файле.
set datetemp=%date:~-10% @echo .>%SYSTEMDRIVE%\%DATETEMP%.txt
Эти две строки работают следующим образом. Сначала в памяти создаем переменную datetemp, которой присваиваем 10 символов справа налево от системной переменной DATE. Таким образом, теперь во временной переменной datetemp содержится только текущая дата. Следующией строкой перенаправляем вывод символа точка в файл, имя которого берем из переменной datetemp, а расширение txt указываем явно. Файл будет создан на системном диске компьютера, где выполняется bat файл.
При сборе администратором информации о компьютерах в сети будет удобнее добавить к имени файла имя компьютера. Это легко можно сделать при помощи следующей команды:
@echo .>C:\FolderName\%COMPUTERNAME%.txt
Эта команда в ходе выполнения пакетного файла создаст на диске С текстовый файл с именем того компьютера, на котором выполняется пакетный файл.
Для создания файла с определенным именем можно использовать любые системные переменные, либо создать свои, на основе системных переменных и/или других данных.
Как создать файл с расширением BAT в Windows 10/8/7
Поскольку батник представляет собой обычный текстовый файл с необычным контентом, для его создания сгодится практически любой текстовый редактор. Разумеется, потребуется также знание синтаксиса языка командной строки. Использовать Word – не самый оптимальный способ, гораздо проще задействовать «Блокнот», но ещё лучше воспользоваться Notepad++, поскольку этот редактор обладает полезной «фишкой» – умеет подсвечивать синтаксис, облегчая задачу пользователям. Правда, в состав операционной система он не входит, его придётся скачивать.
В обоих случаях создание батника происходит по одинаковому сценарию: в меню «Файл» выбираем «Создать», заполняем файл содержимым, по окончании редактирования кликаем «Сохранить как», даём имя пакетному файлу, а в поле «Тип файла» указываем «Batch file».
В классическом «Блокноте» расширение необходимо написать руками, выбрав в поле «Тип файла» опцию «Все файлы».
При написании пакетных скриптов необходимо учитывать следующие нюансы:
- перенос строк в таких файлах недопустим, он будет интерпретироваться неправильно;
- правильной кодировкой будет UTF-8;
- при использовании в командах кириллических символов, кодировку следует изменить с помощью специальной команды chcp 1251;
- расширение BAT идентично CMD. Файлы, оканчивающиеся таким расширением, будут обработаны командным интерпретатором точно так же.
Есть и другие интересные моменты.
Использование длинных имён в BAT-файлах
Многие пользователи при практическом рассмотрении вопроса, как создать батник, в том числе с расширением CMD, сталкиваются с проблемой длинных имён, которые доступны в ОС Windows. Интерпретатор командной строки в этом отношении остался закоренелым ретроградом – он понимает имена файлов и каталогов в формате DOS, то есть длиной не более 8 символов. Как же решается подобная дилемма?
Один из наиболее известных способов – сокращение имени до 6 символов (исключая пробелы) и присвоение остатку окончания, состоящего из символа «тильда» (~) и цифры 1. Например, стандартное имя каталога Program Files будет выглядеть как Progra~1, папка Sound Blaster получит имя SoundB~1.
Казалось бы, вполне изящное решение. Но не во всех случаях. Скажем, у вас имеется несколько папок, начинающихся с одного имени. Типичный пример – установка в том же Program Files нескольких программных продуктов от компании Mozilla – в этом случае сокращённым именем будет Mozill, и если всем присвоить остаток ~1, то это будет неправильно. Выход – именовать файлы, присваивая номер в порядке возрастания. Получим последовательность для продуктов Firefox, Thunderbird и Sunbird в виде строк Mozill~1 для браузера, Mozill~2 для Thunderbird и Mozill~3 для органайзера.
Проблема в том, что если один из продуктов удалить, например, Firefox, оставшиеся две записи окажутся неработоспособными. Удалив Thunderbird, вы сделаете недоступным Sunbird. Наконец, такой способ позволяет дать имена лишь девяти файлам/папкам с одинаковым начальным именем. Так что подобный способ удовлетворительным назвать никак нельзя.
Второе решение – заключать длинные имена и пути в кавычки.
Кавычки в пакетных файлах
Если вы думаете, что знаете всё про то, как сделать BAT-файл, то, скорее всего ошибаетесь. Допустим, вам нужно указать один из параметров команды в кавычках. Сами кавычки синтаксисом не запрещены, но всегда нужно учитывать правила написания конкретной команды. Пускай нам нужно запустить экзешник scw.exe. Соответствующая команда, по идее, должна иметь вид
Но это будет воспринято интерпретатором неправильно, поскольку в синтаксисе команды START на первом месте – необязательный параметр , и только затем следует путь. Поэтому, чтобы командный интерпретатор не запутался, первый параметр обязательно указываем, даже если он не нужен – просто оставляем его пустым.
Тогда наша команда преобразится:
Правильным также будет заключение в скобки всех наименований папок/файлов с пробелами внутри. Но встречаются ситуации, когда оба варианта не сработают. В таких случаях можно посоветовать посредством команды cd перейти в нужный каталог и работать уже в целевом. В нашем случае батник будет иметь вид:
Этот метод более трудоёмкий, но он гарантированно рабочий.
Как видим, создание, написание BAT-файлов даже для таких простых задач, как запуск программ в Windows, является по большому счёту искусством.