Saya ingin menggunakan Cygwin untuk shell utama saya di tempat kerja, tetapi grup saya menggunakan file batch untuk beberapa proses. Saya telah diberitahu bahwa saya hanya dapat melakukan cmd /c batch.bat
untuk menjalankan file batch dari Cygwin. Ini berfungsi untuk beberapa kasus, dan tidak untuk yang lain. Salah satu file batch benar-benar gagal ketika saya melakukan ini, tetapi berfungsi dengan baik ketika saya menjalankannya dari cmd shell.
Keanehan lain yang saya perhatikan adalah bahwa jika saya lari cmd /?
dari Cygwin, saya tidak mendapatkan hasil. Menjalankan ini dari shell cmd memberikan bantuan standar. Bahkan melakukan cmd /c cmd /?
tidak memberikan hasil. Jika saya menjalankan cmd
dari Cygwin, itu memberi saya cmd shell, dan kemudian jika saya lari cmd /?
, saya mendapatkan teks bantuan, tetapi tanpa halaman istirahat.
Saya kira hal berikutnya yang harus dicoba adalah menemukan cara untuk benar-benar meluncurkan cmd dalam jendela yang berbeda, seolah-olah Anda telah pergi ke Start-> Run, dan kemudian ketik "cmd". Apakah ada cara untuk melakukan ini dari dalam Cygwin?
sumber
Anda dapat menjalankan file batch dari shell Cygwin secara langsung, Anda bahkan tidak perlu panggilan perantara
cmd
. Jika file batch memerlukan argumen, mereka perlu dikutip dalam mode Windows; mungkin lebih mudah dijalankancmd /c 'foo.bat "quoted arguments"'
.Anda tidak mengatakan di terminal apa Anda menjalankan shell. File batch sendiri tidak peduli tentang itu, tetapi perintah yang dijalankan dari file batch mungkin. Emulator terminal Cygwin tidak meniru konsol Windows, sehingga mereka baik untuk program Cygwin dan untuk program stdio saja tetapi tidak untuk program konsol Windows.
Jika biasanya menjalankan shell Cygwin di terminal Cygwin (seperti rxvt atau mintty), Anda dapat menjalankan file batch bermasalah di konsol Windows terpisah
start foo.bat
. Anda mungkin ingin menjalankan Console2 sebagai pengganti yang lebih baik untuk konsol Windows, dan menjalankan aplikasi konsol Windows di aplikasi Console2 dan Cygwin di terminal Cygwin (atau bahkan di Console2).cmd /?
adalah herring merah: mungkin ada direktori satu karakter panjang di direktori root Cygwin, sehingga shell mengembang/?
dan berjalancmd
dengan sakelar yang kebetulan tidak menghasilkan output.sumber