Chciałbym użyć Cygwin do mojej głównej powłoki w pracy, ale moja grupa używa plików wsadowych do kilku procesów. Powiedziano mi, że mogę po prostu cmd /c batch.bat
uruchomić plik wsadowy z Cygwin. Działa to w niektórych przypadkach, a nie w innych. Jeden z plików wsadowych całkowicie nie działa, gdy to robię, ale działa dobrze, gdy uruchamiam go z powłoki cmd.
Inną osobliwością, którą zauważyłem, jest to, że jeśli uruchomię cmd /?
z Cygwin, nie otrzymam żadnych danych wyjściowych. Uruchomienie tego z powłoki cmd daje standardową pomoc. Nawet robienie cmd /c cmd /?
nie daje żadnych rezultatów. Jeśli uruchomię cmd
z Cygwin, daje mi powłokę cmd, a następnie, jeśli uruchomię cmd /?
, otrzymuję tekst pomocy, ale bez podziału strony.
Sądzę, że następną rzeczą do znalezienia jest znalezienie sposobu na uruchomienie cmd w osobnym oknie, tak jakbyś poszedł do Start-> Uruchom, a następnie wpisał „cmd”. Czy istnieje sposób, aby to zrobić z poziomu Cygwin?
źródło
Możesz uruchomić plik wsadowy bezpośrednio z powłoki Cygwin, nie potrzebujesz nawet pośredniego wywołania do
cmd
. Jeśli plik wsadowy wymaga argumentów, należy je cytować w stylu Windows; uruchomienie może być prostszecmd /c 'foo.bat "quoted arguments"'
.Nie mów w jakim terminalu uruchamiasz powłokę. Same pliki wsadowe nie dbają o to, ale polecenia wykonywane z plików wsadowych mogą. Emulatory terminali Cygwin nie emulują konsol Windows, więc są dobre dla programów Cygwin i programów tylko dla standardu stdio, ale nie dla programów konsoli Windows.
Jeśli normalnie uruchomisz powłoki Cygwin w terminalu Cygwin (takim jak rxvt lub mintty), możesz uruchomić pliki wsadowe kłopotów w osobnej konsoli Windows za pomocą
start foo.bat
. Możesz uruchomić konsolę 2 jako lepszy zamiennik konsoli Windows i uruchomić aplikacje konsoli Windows w konsoli Console2 i aplikacjach Cygwin w terminalu Cygwin (lub nawet w konsoli Console2).cmd /?
to czerwony śledź: w katalogu głównym Cygwin są prawdopodobnie katalogi o długości jednego znaku, więc powłoka rozszerza się/?
i działacmd
z przełącznikami, które nie generują danych wyjściowych.źródło