Execute outro cmd no bastão como se fosse seu próprio caminho

0

Eu preciso executar bat (fix.bat) no arquivo em lote cmd (digamos sample.cmd em c :) O problema é que apesar de usar: Iniciar / WAIT cmd.exe / C D: \ dev \ sys \ fix.bat

fix.bat é executado como do comando pai (c: \ sample.cmd), mas preciso forçá-lo a executar a partir do caminho ("d: \ dev \ sys")

Como executar o morcego em outro morcego para que o segundo seja executado como executado em seu próprio caminho, onde está localizado?

Lá, no exemplo, ajudaria a entrar: "cd d: \ dev \ sys" e, em seguida, ligue para o fix.bat, mas eu quero evitar isso.

    
por Piledriver 28.08.2014 / 00:12

2 respostas

0

Existem várias opções: -

  1. Crie um link usando o explorer: localize fix.bat , clique com o botão direito, selecione Copiar , clique com o botão direito em outro lugar e selecione Colar atalho ; Agora renomeie para se livrar de "Shortcut to" do nome e talvez do ".bat" também: então mude o comando pai para chamar D: \ dev \ sys \ fix.lnk ao invés de < strong> D: \ dev \ sys \ fix.bat e o link definirá o diretório.
  2. Crie um arquivo de três linhas callfix.bat contendo d: , cd \dev\sys e fix.bat : em seguida, chame isso em vez de fix.bat em seu pai comando.
  3. No seu comando pai, use start /WAIT cmd.exe /C "D: & cd \dev\sys & fix.bat" .

Sua escolha dependerá do que você achar mais fácil de manter e ampliar se seus requisitos mudarem.

    
por 28.08.2014 / 01:04
0

Você só tem 2 opções.

1) Altere seu diretório atual em seu script sample.cmd:

pushd d:\dev\sys
start /wait cmd.exe /c fix.bat

Mas você afirmou que não quer fazer isso.

2) A única outra opção é modificar o fix.bat para alterar o diretório atual para onde ele está sendo executado. A maneira mais simples de fazer isso é adicionar a seguinte linha na (ou próxima) parte superior do script:

pushd "%~f0"

Mas isso pode alterar o comportamento de outros usuários que esperam que o script funcione no diretório atual quando o script é chamado.

EDITAR ou adotar uma das outras sugestões do AFH: -)

    
por 28.08.2014 / 01:05