Non c'è una buona ragione per farlo. In effetti, l'unico vero effetto che accade è rallentare le cose.
La gente potrebbe pensare che ci sia una buona ragione per farlo. L'uso di CMD ha i seguenti effetti che possono essere generalmente buoni in alcuni casi:
- Abilita i comandi interni, come "
DIR
"
- Imposta le variabili di ambiente, come la variabile PATH
Tuttavia, in questo caso, nessuno di questi benefici è ottenuto. Diamo un'occhiata a entrambi questi scenari:
Quindi, in alcuni casi, può esserci un momento in cui l'uso di " CMD /C
" è utile. Ad esempio, se utilizzo il comando esterno PSEXEC
(scaricato da SysInternals) e provo a eseguire " DIR
" su un computer remoto, Windows proverà a eseguire il DIR
comando " ". Windows non eseguirà quel comando poiché non esiste un file " DIR.EXE
", " DIR.BAT
" o " DIR
" che termina con un'altra estensione supportata. (Le estensioni supportate possono essere visualizzate eseguendo " ECHO %PATHEXT%
".)
Tuttavia, in questo scenario, se provo a eseguire " CMD /C DIR
", allora funzionerà, perché Windows cercherà un eseguibile chiamato " CMD
" e lo troverà, quindi CMD
finirà per eseguire correttamente il DIR
comando " " che è un comando interno parte del CMD
comando " ".
In questo caso, puoi eseguire powershell
semplicemente " CMD /C powershell
", quindi non trarrai alcun vantaggio dal " CMD /C
" non necessario . L'unico vantaggio che sto vedendo durante la fase aggiuntiva della digitazione " CMD /C
" è di fornire un esempio che sarà utile se qualcuno decide di provare a modificare un esempio per eseguire una riga di comando " DIR
" o " COPY
". Avere un esempio più flessibile può essere utile per alcune persone. Non è davvero necessario quando le persone sanno cosa stanno facendo.
Per quanto riguarda il secondo punto elenco che ho fornito, che è quello di impostare le variabili di ambiente, è anche qualcosa che non stai facendo attivamente in questo caso particolare. Forse alcune persone pensano che stiano aiutando le cose causando l'impostazione della variabile d'ambiente PATH. Tuttavia, quando si eseguono comandi direttamente (ad es. Dall'opzione di menu "Esegui" del menu Start), il sistema operativo Windows può cercare comandi in alcuni punti aggiuntivi. Ad esempio, in Windows XP / versioni successive è possibile eseguire:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Se il comando che si desidera eseguire è elencato in "Percorsi app", Windows potrebbe trovare il programma anche se non si trova nel percorso. Quindi, è probabile che Windows trovi MOLTO di più di quello che CMD troverebbe nel PERCORSO utilizzato da CMD.
Un possibile vantaggio è se si desidera eseguire CMD in modo da poter fare riferimento a una variabile di ambiente come% USERPROFILE% o% LOGONSERVER% o% TEMP% /% TMP%, ma poiché non lo si sta facendo, non lo è necessità di eseguire " CMD /C
".
Quindi, per il tuo caso particolare: non c'è una buona ragione per farlo. Gli effetti che stai ottenendo sono far lavorare di più il tuo computer, rallentare il processo e consumare più memoria (tutto ciò che stai facendo con quantità trascurabili su apparecchiature moderne).
cmd /c
...cmd /k
è piuttosto diversa in quanto lascia la finestra aperta dopo il completamento del comando. Presumibilmente il richiedente ha fatto in questo modo in modo da poter vedere l'output a scopo di debug.