Пакетный файл для запуска команды в cmd в каталоге
Я хочу иметь пакетный файл (должен быть помещен на рабочий стол), который делает следующее:
- открывает cmd
- перемещается в каталог, например. C:\Activiti-5,9\Настройка
- запускает команду в каталоге, например. ant demo.start(эта команда запускает сервер activiti)
Я попробовал следующее, чтобы добраться до каталога, но как запустить команду "ant demo.start"?
START cmd.exe/k "cd C:\activiti-5.9\setup"
Спасибо за помощь.
EDIT:
Ссылаясь на ответ zb226 ниже: Еще один вопрос, если вы можете ответить мне, - как заставить этот cmd запускаться как администратор? будет ли следующая работа?
START cmd /K "runas /user:administrator & cd C:\activiti-5.9\setup & ant demo.start"
Ответы
Ответ 1
Для меня следующее работает и запускает сервер activiti, а также открывает проводник в браузере (с помощью ответа и комментария zb226);
START "runas /user:administrator" cmd /K "cd C:\activiti-5.9\setup & ant demo.start"
START /wait localhost:8080/activiti-explorer
Ответ 2
Соберите произвольные команды с помощью &
следующим образом:
command1 & command2 & command3 & ...
Таким образом, в вашем конкретном случае поместите эту строку в пакетный файл на рабочем столе:
START cmd.exe /k "cd C:\activiti-5.9\setup & ant demo.start"
Вы также можете использовать &&
для цепочки команд, хотя это приведет к проверке ошибок, и цепочка выполнения сломается, если одна из команд завершится с ошибкой. Поведение подробно описано здесь.
Редактировать: Заинтригованный @James K comment "МОЖЕТ цеплять команды, но они не будут иметь никакого эффекта" , я проверил еще несколько и, к моему удивлению, обнаружил, что программа, которую я запускал в своем первоначальном тесте - firefox.exe
- пока она не существует в каталоге в переменной среды PATH
, на самом деле выполняется в любой точке моей системы (что действительно заставило меня задуматься - см. нижнюю часть ответа для объяснения), Так что на самом деле выполнение...
START cmd.exe /k "cd C:\progra~1\mozill~1 && firefox"
... не доказал, что решение работает. Поэтому я выбрал другую программу (nLite), убедившись, что она работает не в любой точке моей системы:
START cmd.exe /k "cd C:\progra~1\nlite && nlite"
И это работает так же, как уже предлагал мой первоначальный ответ. Версия Windows не задана в вопросе, но я использую Windows XP, btw.
Если кому-то интересно, почему firefox.exe
, не будучи в PATH
, выполняется в любой точке моей системы - и, вероятно, тоже на вашем - это связано с разделом реестра, в котором приложения могут быть зарегистрированы для доступа везде. Подробнее см. этот ответ SU.
Ответ 3
Этот вопрос 5 лет. Интересно, почему еще никто не нашел переключатель /d
для установки рабочей папки:
start /d "c:\activiti-5.9\setup" cmd /k ant demo.start
Ответ 4
CMD.EXE не будет выполнять внутренние команды, содержащиеся внутри строки. С этой строкой можно запустить только фактические файлы.
Вам нужно будет на самом деле вызвать пакетный файл, чтобы сделать то, что вы хотите.
BAT1.bat
start cmd.exe /k bat2.bat
BAT2.bat
cd C:\activiti-5.9\setup
ant demo.start
Вы можете создать папку с именем BAT
и добавить ее в свой путь.
Поэтому, если вы создаете C:\BAT
, добавьте C:\BAT\;
в путь. Путь находится по адресу:
click -> Start -> right-click Computer -> Properties ->
click -> Avanced System Settings -> Environment Variables
select -> Path (From either list. User Variables are specific to
your profile, System Variables are, duh, system-wide.)
Click -> Edit
Press the -> the [END] or [HOME] key.
Type -> C:\BAT\;
Click -> OK -> OK
Теперь поместите все ваши командные файлы в C:\BAT
, и они будут найдены независимо от текущего каталога.
Ответ 5
Mine DID выполняет команды по порядку. Здесь моя версия того, что я использовал для:
START cmd.exe/k "U: и cd U:\Design_stuff\new_lcso_website_2017 и python -m http.server"
Мне нужно
- Перейдите на мой диск U.
- CD в определенную папку, содержащую веб-сайт, который я перепроектирую
- Выполнить python с помощью модуля http server (для отображения содержимого в моем браузере).
Если эти команды вышли из строя, они не будут отображать правильные файлы. Сначала я забыл изменить на U:
и, запустив командный файл на моем рабочем столе, он создал веб-страницу в моем браузере http://localhost:8000 показывая мне содержимое моего рабочего стола вместо папки, которую я хотел.
Ответ 6
Вы также можете проверить:
cmd/c cd/d C:\activiti-5.9\setup и ant demo.start