Выполнение команды 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
Есть две причины, по которым ваш скрипт не работает:
cmd /k ...
создает новый экземплярcmd
, запускает указанную команду, затем запрашивает из этого экземпляра и не продолжает исходнуюcmd
пока вы не введетеexit
,- Даже если бы вы использовали
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