Выполнение cmd.exe из Cygwin

Я хотел бы использовать Cygwin для своей основной оболочки на работе, но моя группа использует пакетные файлы для нескольких процессов. Мне сказали, что я могу просто сделать cmd /c batch.bat выполнять пакетный файл из Cygwin. Это работает на некоторые случаи, а не на других. Один из пакетных файлов полностью перестал работать, когда я делаю это, но хорошо работает, когда я выполняю его от оболочки cmd.

Другая причуда, которую я заметил, является этим, если я работаю cmd /? от Cygwin я не получаю вывода. Выполнение этого от оболочки cmd дает стандартную справку. Даже выполнение cmd /c cmd /? не обеспечивает вывода. Если я работаю cmd от Cygwin это дает мне оболочку cmd, и затем если я работаю cmd /?, Я получаю текст справки, но без разрывов страницы.

Я предполагаю, что следующая вещь попробовать состоит в том, чтобы найти способ на самом деле запустить cmd в его собственном отличном окне, как будто Вы пошли для Запуска-> Выполнение и затем ввели "cmd". Существует ли способ сделать это из Cygwin?

16
задан 15.09.2010, 21:22

2 ответа

/? рассматривается как шаблон ударом, где вопросительный знак будет соответствовать отдельному символу, поэтому если у Вас будут файлы или каталоги любой-буквы в Вашем корне Cygwin, то шаблон будет заменен теми. echo /? покажет Вам, если это будет тем, что происходит. Можно выйти из вопросительного знака с обратной косой чертой: /\?. Или заключите целый аргумент в кавычки: '/?'.

cygstart c:/windows/system32/cmd запустит cmd.exe в его собственном окне.

8
ответ дан 07.12.2019, 10:52

Можно выполнить пакетный файл от оболочки Cygwin непосредственно, Вам даже не нужен промежуточный вызов к cmd. Если пакетный файл требует аргументов, они должны быть заключены в кавычки способом Windows; могло бы быть более просто работать cmd /c 'foo.bat "quoted arguments"'.

Вы не говорите, в каком терминале Вы выполняете оболочку. Пакетные файлы собой не заботятся об этом, но команды, которые выполняются от пакетных файлов, могли бы. Эмуляторы терминала Cygwin не эмулируют консоли Windows, таким образом, они хороши для программ Cygwin и stdio-только для программ, но не для программ консоли Windows.

Если обычно выполненный Cygwin окружает в терминале Cygwin (таком как rxvt или мятный), можно выполнить пакетные файлы проблемы в консоли отдельных окон с start foo.bat. Вы могли бы хотеть выполнить Console2 как лучшую замену для консоли Windows и запустить консольные приложения Windows в приложениях Console2 и Cygwin в терминале Cygwin (или даже в Console2).

cmd /? отвлекающий маневр: в корневом каталоге Cygwin существуют, по-видимому, символьные длинные каталоги, таким образом, оболочка расширяется /? и выполнения cmd с переключателями, которые, оказывается, не производят вывода.

14
ответ дан 07.12.2019, 10:52

Теги

Похожие вопросы