Немає вагомих причин для цього. Насправді єдиний реальний ефект, який відбувається - це сповільнити справи.
Люди можуть подумати, що для цього є вагомі причини. Використання CMD має такі ефекти, які в деяких випадках можуть бути хорошими:
- Вмикає внутрішні команди, наприклад "
DIR
"
- Встановлює змінні середовища, такі як змінна PATH
Однак у цьому випадку жодна з цих пільг не отримується. Давайте розглянемо обидва ці сценарії:
Отже, в деяких випадках може бути час, коли " CMD /C
" корисно використовувати. Наприклад, якщо я використовую зовнішню команду PSEXEC
(завантажену з SysInternals) і спробую запустити " DIR
" на віддаленому комп'ютері, то Windows спробує запустити команду " DIR
". Windows не зможе запустити цю команду, оскільки немає файлів " DIR.EXE
", " DIR.BAT
" або " DIR
", що закінчується іншим підтримуваним розширенням. (Підтримувані розширення можна побачити, запустивши " ECHO %PATHEXT%
".)
Однак у цьому сценарії, якщо я спробую запустити " CMD /C DIR
", то це спрацює, тому що Windows шукатиме виконуваний файл з назвою " CMD
", і знайде це, а потім CMD
успішно виконає DIR
команду " ", яка є внутрішньою частина команди " CMD
".
У цьому випадку ви можете просто powershell
так само легко працювати, як і " CMD /C powershell
", тому ви не отримаєте ніякої користі від зайвого " CMD /C
". Єдина користь, яку я бачу, щоб пройти додатковий крок набору тексту " CMD /C
" - це надати приклад, який буде корисним, якщо хтось вирішить спробувати змінити приклад для запуску командного рядка " DIR
" або " COPY
". Маючи більш гнучкий приклад, може бути корисним для деяких людей. Це дійсно не потрібно, коли люди знають, що роблять.
Що стосується другого пункту, який я надавав, який полягає у встановленні змінних умов середовища, це теж щось, що ви не активно робите в цьому конкретному випадку. Можливо, деякі люди думають, що вони допомагають, викликаючи встановлення змінної середовища PATH. Однак, коли ви запускаєте команди безпосередньо (наприклад, з пункту меню «Виконати» меню «Пуск»), операційна система Windows може шукати команди в деяких додаткових місцях. Наприклад, у Windows XP / новіших версіях можна запустити:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Якщо команда, яку потрібно запустити, вказана у розділі "Шляхи додатків", Windows може знайти програму, навіть якщо вона не стоїть на шляху. Таким чином, Windows, ймовірно, знайде навіть БІЛЬШЕ, ніж лише те, що знайде CMD у PATH, який використовує CMD.
Однією з можливих переваг є те, якщо ви хотіли запустити CMD, щоб ви могли посилатися на змінну середовища, наприклад% USERPROFILE% або% LOGONSERVER% або% TEMP% /% TMP%, але оскільки ви цього не робите, ви не потрібно запустити " CMD /C
".
Отже, для вашого конкретного випадку: Немає вагомих причин це робити. Ефекти, яких ви досягаєте, - це те, що ваш комп’ютер виконує більше роботи, уповільнюючи процес і використовуючи більше пам’яті (все це ви робите за рахунок незначної кількості сучасного обладнання).
cmd /c
...cmd /k
не відрізняється тим, що він залишає вікно відкритим після завершення команди. Імовірно, запитувач зробив це так, щоб вони могли бачити вихід для налагодження.