1

Я использую Listary в качестве инструмента быстрого запуска. Я хочу запустить cmd в каком-то месте и ввести python virtualenv, для которого нужна дополнительная команда activate py3 .

Я старался

cmd.exe /K cd /d "{query}" & "activate py3"

Здесь {query} - это путь к каталогу. Но это не работает. Какой правильный путь?

2 ответа2

3

Решено,

cmd.exe /K "cd /d {query} && activate py3"

Форма является:

cmd.exe /K "command1 && command2"
1

Ответ на вопрос уже получен, я просто объясню его немного подробнее. В командной строке Windows, мы можем выполнить несколько команд в одной строке

Использование '&' (Ampersand) ИЛИ '&&' (Double Ampersand)

Использование одиночного амперсанда & вызывает последовательное выполнение, т.е. Команды выполняются в той последовательности, в которой они введены. В нем нет проверки состояния. Может быть случай, когда вторая команда может быть выполнена успешно, только если первая команда выполнена успешно.

Это вводит двойной амперсанд && . Этот оператор является условным оператором и выполняет проверку ошибок, т.е. Вторая команда будет выполнена, только если первая команда выполнена успешно.

Пример :

$ cd Docs & dir

Будут запущены первые cd Docs , и независимо от того, был ли он успешным или нет, будет запущена вторая команда dir .

  1. If Docs folder exist она изменит каталог и затем выведет список содержимого Docs с помощью команды dir .
  2. Однако, If Docs folder doesn't exist она выдаст ошибку, но все равно будет запущен dir для просмотра содержимого текущего каталога.

$ cd Docs && dir

Здесь команда dir будет выполняться только тогда, когда текущий Каталог будет изменен на Документы, и это будет происходить only when Docs exist . Таким образом, вы можете интерпретировать команду как: «Если папка Docs существует, измените текущий каталог, а затем перечислите его содержимое».

Это очень полезно в пакетном программировании, а иногда и в командной строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .