Windows em lote equivalente a “comando” no bash do linux

0

No linux bash há um comando command que pode executar o comando "real" mesmo se você tiver um nome de função ou um nome de arquivo de script que seja nomeado igual a esse comando.

function ping(){
    echo do nothing
}
command ping

ainda funcionará.

No Windows batch, eu tenho um arquivo ping.cmd que entra em loop se eu executar ping dentro dele.

Qual é o equivalente de command no lote do Windows?

    
por laggingreflex 02.12.2014 / 14:46

1 resposta

2

Resposta 1: Nenhuma, porque o batch do Windows nem mesmo tem funções como o bash faz. Ele só tem sub-rotinas que usam uma sintaxe diferente dos comandos normais - ping vs call :ping - não há necessidade de substituição.

Se você ler a documentação mais de perto, command apenas ignora aliases e funções, mas não faz nada sobre scripts em $ PATH. Em ambos os shells , se você substituir usando um arquivo de script real, cabe a você encontrar o comando "real".

Resposta 2: Para evitar o loop que você descreveu, você precisará especificar o nome completo de "ping".

  • Com o bash, isso significaria chamar /bin/ping ou talvez fazer um loop por $ PATH até que você o encontre.

  • No Windows, as mesmas opções existem; no entanto, como seu script é chamado de ping.bat ou ping.cmd , você pode executar ping.exe para evitar o loop.

por 02.12.2014 / 15:07

Tags