execução do comando CMD

1

Estou tentando executar um comando específico em um script de morcego depois de encontrar o caminho para a pasta. Aqui está o que eu tenho até agora:

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

O problema que estou tendo é executar o cscript ospp.vbs / dstatus

    
por jh86 10.09.2018 / 15:41

2 respostas

3

se este script estiver sendo salvo como um arquivo .bat, há uma razão pela qual você está dizendo ao arquivo em lote para abrir outra instância da linha de comando?

Para este script simples, você não precisa fazer isso. Além disso, seu caminho para o cd deve envolver toda a linha entre aspas duplas. As seguintes alterações funcionarão para as suas necessidades.

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

Existem dois motivos pelos quais seu script está falhando: -

  1. cmd /k ... cria uma nova instância de cmd , executa o comando especificado e, em seguida, avisa dessa instância e não continua com o original cmd até você digitar exit .
  2. Mesmo se você tivesse usado cmd /c ... para executar uma sequência de comandos e sair imediatamente, o cd em execução na subshell não afetaria o diretório atual no cmd original.

Para manter o diretório atual após a execução do script, você pode usar:

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

ou mais, simplesmente não use um subshell, mas use pushd em vez de cd e execute popd após cscript retornar: -

@ECHO OFF
pushd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
popd
pause
    
por 10.09.2018 / 19:46