Bat-файл для запуска .exe из командной строки

134

Я хочу создать файл .bat, чтобы я мог просто щелкнуть по нему, чтобы он мог работать:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service

Может ли кто-нибудь помочь мне со структурой .bat файла?

abatishchev
источник

Ответы:

199

Чтобы запустить программу и затем закрыть командную строку, не дожидаясь выхода программы:

start /d "path" file.exe
abatishchev
источник
10
@MehdiJ: устанавливает домашний каталог.
Абатищев
2
можно ли запустить bat-файл из веб-браузера? как javascript для вызова файла bat ??
Karthi
5
@Karthi: извините, это невозможно
Абатищев
2
@Karthi Вы не хотите, чтобы javascript мог запускать файл bat по соображениям безопасности.
Роланд
1
как ждать выхода программы?
m4l490n 04
48

Ты можешь использовать:

start "windowTitle" fullPath/file.exe

Примечание: первый набор кавычек должен быть там, но вам не нужно в них ничего помещать, например:

start "" fullPath/file.exe
user2075928
источник
9
«Первый набор кавычек» - это просто заголовок окна и НЕ требуется. Однако лучше всего указать каталог запуска с помощью / d. start /d "fullpath" file.exe Это гарантирует, что все зависимые файлы, например, DLL, будут найдены и загружены.
Том Уилсон,
34

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

start "c:\windows\system32" notepad.exe   

(приведенный выше код "c: \ windows \ system32" - это путь, по которому вы сохранили свою программу .exe, а notepad.exe - это файл вашего программного файла .exe)

наслаждаться!

shinukb
источник
27

Просто поместите эту строку в файл bat ...

В качестве альтернативы вы даже можете создать ярлык для svcutil.exe, а затем добавить аргументы в «целевое» окно.

GavinCattell
источник
7

Bat-файл не имеет структуры ... это то, как вы набираете его в командной строке. Так что просто откройте свой любимый редактор ... скопируйте строку кода, которую хотите запустить ... и сохраните файл как something.bat или что-то еще.cmd

MBoy
источник
7

Просто вставьте файл и назовите его «ServiceModelSamples.bat» или что-то в этом роде.

Вы можете добавить «@echo off» в первой строке, чтобы команда не выводилась на экран:

@echo off
svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service
myplacedk
источник
И вместо того, чтобы добавлять в @echo offкачестве первой строки, вы можете просто добавить @в начале строки, которую вы не хотите
повторять
6

Что тебя останавливает?

Поместите эту команду в текстовый файл, сохраните его с расширением .bat (или .cmd) и дважды щелкните по нему ...

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

Саймон
источник
6

Если вы хотите быть по-настоящему умным, введите в командной строке:

echo svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/ServiceModelSamples/service >CreateService.cmd

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

kͩeͣmͮpͥ ͩ
источник
3

Как описано здесь о Startкоманде, следующее запустит ваше приложение с указанными вами параметрами:

start "svcutil" "svcutil.exe" "language:cs" "out:generatedProxy.cs" "config:app.config" "http://localhost:8000/ServiceModelSamples/service"
  • "svcutil"после startкоманды - имя, присвоенное окну CMD при запуске указанного приложения. Это обязательный параметр startкоманды.

  • "svcutil.exe"- это абсолютный или относительный путь к приложению, которое вы хотите запустить. Использование кавычек позволяет использовать пробелы в пути.

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

Gipphe
источник
2

Если для ваших папок установлено «скрытие расширений файлов», вы назовете файл * .bat или * .cmd, и он все равно будет текстовым файлом (скрытое расширение .txt). Убедитесь, что вы можете правильно назвать файл!

отметка
источник
1

Что ж, важным моментом, похоже, здесь является то, что svcutil по умолчанию недоступен из командной строки, вы можете запустить его из ярлыка строки vs xommand, но если вы обычно создаете командный файл, это не поможет, если вы не запустите файл vcvarsall.bat раньше сценарий. Ниже приведен образец

"C: \ Program Files \ Microsoft Visual Studio * версия * \ VC \ vcvarsall.bat"
svcutil.exe / язык: cs /out:generatedProxy.cs /config:app.config http: // localhost: 8000 / ServiceModelSamples / service
arkoak
источник