Как передать путь Windows с пробелами в Cygwin Bash

2089
doc

Я подключаюсь к серверу Windows (2012R2 64 бит) под управлением Cygwin (последняя версия, которую я скачал с cygwin.com вчера), используя шпаклевку.

Я пытаюсь запустить cmd.exe и передать cmd.exe команду, которая находится в «Program Files (x86)».

это то, что я пытаюсь запустить: cmd.exe / C "c: \ program files (x86) \ ibm \ rationalsdlc \ clearcase \ bin \ cleartool.exe"

и я получаю: «c: \ program» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

я попробовал это с "\" и с "\" и получил то же самое сообщение.

когда я удвоил скобки ("), например: cmd.exe / C" "c: \ program files (x86) \ ibm \ rationalsdlc \ clearcase \ bin \ cleartool.exe" "

я получил -bash: синтаксическая ошибка рядом с неожиданным токеном `('

Когда я пытался передать другую строку без пробелов в пути, например: cmd.exe / C "ccperl C: \ utils \ find-locked-vobs.pl", он работал нормально, а сценарий perl запускался нормально.

Как передать команду, если в пропусках есть пробелы?

Спасибо Дэвид

0
зачем вам нужен cmd для его запуска? matzeri 7 лет назад 0
Это способ реализации клиента doc 7 лет назад 0

1 ответ на вопрос

0
matzeri

Assuming you are running bash and you want to pass the full windows path to cmd, you should use single apostrophe and not double

cmd /c 'C:\Program Files (x86)\Adobe\Reader 10.0\Reader\acrord32.exe'

works fine for me.