Подтвердить что ты не робот

Переключатель cmd.exe/k

Я пытаюсь переключиться на каталог с помощью cmd, а затем выполнить пакетный файл

например.

cmd /k cd "C:\myfolder"
startbatch.bat

Я также пробовал (без успеха)

cmd cd /k cd "C:\myfolder" | startbatch.bat

Хотя первая строка (cmd/k), похоже, работает нормально, но вторая команда никогда не запускается. Я использую Vista в качестве ОС

4b9b3361

Ответ 1

Правильный синтаксис:

cmd /k "cd c:\myfolder & startbatch.bat"

Ответ 2

ssg уже отправил правильный ответ. Я бы добавил только /d переключиться на команду cd (например, cd /d drive:\directory). Это гарантирует, что команда работает в случае, если текущая директория находится на другом диске, чем каталог, к которому вы хотите подключиться.

Ответ 3

cmd cd /k "cd C:\myfolder; startbatch.bat"

или, почему бы вам не запустить cmd /k c:\myfolder\startbatch.bat и сделать cd c:\myfolder в .bat файле?

Ответ 4

Вы можете использовать & или && в качестве разделителя команд в Windows.

Пример:

cmd cd /K "cd C:\myfolder && startbatch.bat"

Ответ 5

Я даю это как ответ, потому что я видел этот вопрос в комментарии и не могу комментировать.

cmd /k "cd c:\myfolder & startbatch.bat"

работает, и если у вас есть пробелы:

cmd /k "cd "c:\myfolder" & startbatch.bat"

Как я понимаю, команда передается в cmd как "cd "c:\myfolder" & startbatch.bat", который затем разбивается на cd "c:\myfolder" & startbatch.bat, после чего оставшаяся " " заботится о пути как строке.

Вы также можете использовать &&, | и || в зависимости от того, чего вы хотите достичь.

Ответ 6

Я не вижу ответа, обращаясь к этому, поэтому, если кому-то нужен доступ к каталогу с пространством в его имени, вы можете добавить дополнительные кавычки, например

cmd.exe /K """C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"" & powershell.exe"

Из PowerShell вам нужно избежать кавычек, используя backquote `

cmd.exe /K "`"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" & powershell.exe"

Обратите внимание на скрытые кавычки

`"

внутри строки пути:

"`"C:\my path\`""

Это выполнит правильную команду в cmd, то есть путь, окруженный кавычками, которые должны работать.

Приведенная выше примерная команда инициализирует командную строку разработчика MSVC и вернется к PowerShell, наследует среду и предоставляет доступ к инструментам MSVC.