Não há uma boa razão para fazer isso. De fato, o único efeito real que acontece é desacelerar as coisas.
As pessoas podem pensar que há uma boa razão para fazer isso. O uso do CMD tem os seguintes efeitos que geralmente podem ser bons em alguns casos:
- Ativa comandos internos, como "
DIR
"
- Define variáveis de ambiente, como a variável PATH
No entanto, nesse caso, nenhum desses benefícios é obtido. Vejamos esses dois cenários:
Portanto, em alguns casos, pode haver um tempo em que usar " CMD /C
" é útil. Por exemplo, se eu usar o comando externo PSEXEC
(baixado do SysInternals) e tentar executar " DIR
" em um computador remoto, o Windows tentará executar o DIR
comando " ". O Windows falhará ao executar esse comando, pois não há arquivo " DIR.EXE
", " DIR.BAT
" ou " DIR
" que termine com outra extensão suportada. (As extensões suportadas podem ser vistas executando " ECHO %PATHEXT%
".)
No entanto, nesse cenário, se eu tentar executar " CMD /C DIR
", isso funcionará, porque o Windows procurará um executável chamado " CMD
" e descobrirá isso, e CMD
acabará executando com êxito o DIR
comando " " que é interno parte do CMD
comando " ".
Nesse caso, você pode executar powershell
tão facilmente quanto " CMD /C powershell
", para que você não se beneficie do desnecessário " CMD /C
". O único benefício que estou vendo na etapa extra de digitar " CMD /C
" é fornecer um exemplo que será útil se alguém decidir modificar um exemplo para executar uma linha de comando " DIR
" ou " COPY
". Ter um exemplo mais flexível pode ser útil para algumas pessoas. Realmente não é necessário quando as pessoas sabem o que estão fazendo.
Quanto ao segundo ponto que forneci, que é definir variáveis de ambiente, isso também é algo que você não está fazendo ativamente neste caso específico. Talvez algumas pessoas pensem que estão ajudando as coisas, fazendo com que a variável de ambiente PATH seja definida. No entanto, quando você executa comandos diretamente (por exemplo, na opção de menu "Executar" do menu Iniciar), o sistema operacional Windows pode procurar comandos em alguns locais adicionais. Por exemplo, no Windows XP / mais recente, você pode executar:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Se o comando que você deseja executar estiver listado em "Caminhos do aplicativo", o Windows poderá encontrar o programa mesmo que não esteja no caminho. Portanto, é provável que o Windows encontre MUITO MAIS do que o que o CMD encontraria no PATH que o CMD usa.
Um benefício possível é se você deseja que o CMD seja executado para que você possa se referir a uma variável de ambiente como% USERPROFILE% ou% LOGONSERVER% ou% TEMP% /% TMP%, mas como você não está fazendo isso, não está precisando executar " CMD /C
".
Portanto, para o seu caso em particular: não há uma boa razão para fazê-lo. Os efeitos que você está conseguindo são fazer com que seu computador faça mais trabalho, diminuindo a velocidade do processo e usando mais memória (tudo o que você está fazendo em quantidades insignificantes em equipamentos modernos).
cmd /c
...cmd /k
é bastante diferente, pois deixa a janela aberta após a conclusão do comando. Presumivelmente, o solicitante fez dessa maneira para que eles pudessem ver a saída para fins de depuração.