Выполнение команды CMD

Я пытаюсь выполнить определенную команду в сценарии bat после нахождения пути к папке. Вот что у меня так далеко:

@ECHO OFF
cmd /k "cd C:\"Program Files (x86)\"Microsoft Office\Office15\" 
cscript ospp.vbs /dstatus
pause

Проблема, с которой я сталкиваюсь - это выполнение cscript ospp.vbs /dstatus

2 ответа

Если этот сценарий сохраняется как файл.bat, есть ли причина, по которой вы говорите пакетному файлу открыть другой экземпляр командной строки?

Для этого простого сценария вам не нужно этого делать. Кроме того, ваш путь для CD должен окружать всю строку в двойных кавычках. Следующие изменения будут работать для ваших нужд.

@ECHO OFF
cd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
pause

Есть две причины, по которым ваш скрипт не работает:

  1. cmd /k ... создает новый экземпляр cmd, запускает указанную команду, затем запрашивает из этого экземпляра и не продолжает исходную cmd пока вы не введете exit,
  2. Даже если бы вы использовали cmd /c ... выполнить командную строку и немедленно выйти, cd выполнение в подоболочке не повлияет на текущий каталог в оригинале cmd,

Чтобы сохранить текущий каталог после запуска скрипта, вы можете использовать:

cmd /c "cd C:\Program Files (x86)\Microsoft Office\Office15\ & cscript ospp.vbs /dstatus"

или более просто не использовать подоболочку, но использовать pushd вместо cd и беги popd после cscript возвращает:-

@ECHO OFF
pushd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
popd
pause
Другие вопросы по тегам