Jak wykonać polecenia cmd za pośrednictwem pliku wsadowego?

90

Chcę napisać plik wsadowy, który będzie robił następujące rzeczy w podanej kolejności:

  1. Otwórz cmd
  2. Uruchom polecenie cmd cd c:\Program files\IIS Express
  3. Uruchom polecenie cmd iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. Otwórz przeglądarkę Internet Explorer 8 z adresem URL =http://localhost:8088/default.aspx

Uwaga: Okno cmd nie powinno być zamykane po wykonaniu poleceń.

Próbowałem uruchomić cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express" , ale to nie rozwiązuje mojego celu.

patel
źródło
6
z czym masz problem?
argentum47

Odpowiedzi:

110

Stwórz więc rzeczywisty plik wsadowy: otwórz notatnik, wpisz polecenia, które chcesz uruchomić, i zapisz jako .batplik. Następnie kliknij dwukrotnie plik .bat, aby go uruchomić.

Na początek spróbuj czegoś takiego:

c:\
cd c:\Program files\IIS Express
start iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
start http://localhost:8088/default.aspx
pause
Blorgbeard wyszedł
źródło
1
dzięki @Blorgbeard. działa z wyjątkiem czwartej linii. nie otwiera podanego adresu URL.
patel
czy przeglądarka w ogóle się otwiera?
Blorgbeard wychodzi
Och, chyba wiem, co się dzieje - zobacz moją edycję, dodałem „start” przed iisexpresslinią.
Blorgbeard wychodzi
@Blorgbeard, próbuję twojego podejścia "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --servicei to nie działa. Kiedy wykonuję tę linię, CMDwszystko jest w porządku. W obu przypadkach wykonuję to jako admin. Powiedz mi proszę, co robię źle?
Mike B.
4
@MikeB. startprzyjmuje pierwszy cytowany argument jako tytuł okna. Spróbujstart "" "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --service
Stephan
24

Myślę, że poprawna składnia to:

cmd /k "cd c:\<folder name>"
argentum47
źródło
4
Bardzo fajna opcja '/ k'. W ten sposób nawet po naciśnięciu CTRL + C cmd nie wychodzi.
Wielkie
16

To rozwiązuje niektóre problemy z odpowiedzią Blorgbearda (ale nie została przetestowana):

@echo off
cd /d "c:\Program files\IIS Express"
start "" iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
timeout 10
start http://localhost:8088/default.aspx
pause
foxidrive
źródło
8

Składnia polecenia cmd / c działa dobrze. Ponadto, jeśli chcesz dołączyć plik wykonywalny zawierający spację w ścieżce, będziesz potrzebować dwóch zestawów cudzysłowów.

cmd /c ""path to executable""

a jeśli twój plik wykonywalny wymaga pliku wejściowego ze spacją w ścieżce, to inny zestaw

cmd /c ""path to executable" -f "path to file"" 
Feety
źródło
6
@echo off
title Command Executer
color 1b

echo Command Executer by: YourNameHere
echo #################################
: execute
echo Please Type A Command Here:
set /p cmd=Command:
%cmd%
goto execute
Ethan
źródło
3
„Jak wykonać polecenia cmd za pośrednictwem pliku wsadowego?” Heh, technicznie poprawne.
Vivek Chavda,
2
Technicznie poprawne ... tak ... ale także dokładnie to, czego potrzebujesz, jeśli jesteś na szkolnym komputerze i wiersz poleceń jest wyłączony, ale pliki wsadowe nie.
RetroCraft,
Szukałem tego, więc cieszę się, że to opublikowałeś, mimo że nie tego chciał OP :)
dandeto
1

cmd / k cd c: \ to właściwa odpowiedź

szczery
źródło
cmd / k "cd <ścieżka, w której należy wykonać polecenie cmd (np. c: \ users \ desktop \ myFolder)> & <twoje polecenie (np. pm2 start)>"
Techdive
1
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

Działa w systemie Windows Server2012, podczas gdy używam tych poleceń w jednym pliku wsadowym.

VictorLee
źródło
-8

Wiem, że znak zachęty DOS i cmd NIE PODOBA spacje w nazwach folderów. Twój kod zaczyna się od

cd c: \ Pliki programów \ IIS Express

i próbuje przejść do c: \ Program zamiast C: \ "Program Files"

Zmień nazwę folderu i nazwę * .exe. Mam nadzieję że to pomoże

user7380371
źródło
Zmieniasz nazwę folderu? Chyba żartujesz.
Werner Henze,
1
poprawne dla każdego polecenia, które używa parametrów ze spacjami - z wyjątkiem cd . To jedyne polecenie, jakie znam, które faktycznie przyjmuje parametry ze spacjami bez cudzysłowów.
Stephan
Gdy zmienisz "Pliki programu" .... xD. Zgadzam się z Wernerem. Oto, co się dzieje: Twoje aplikacje, które na stałe kodują lokalizację pliku, nie działają, niektóre funkcje systemowe mogą nie działać, system się psuje