1

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

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

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

2 ответа2

3

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

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

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

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

  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

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