Нет веских причин для этого. Фактически, единственный реальный эффект, который случается, состоит в том, чтобы замедлить вещи.
Люди могут подумать, что для этого есть веская причина. Использование 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 найдет в ПУТИ, который использует CMD.
Одним из возможных преимуществ является то, что если вы хотите, чтобы CMD запускался так, чтобы вы могли ссылаться на переменную среды, такую как% USERPROFILE% или% LOGONSERVER% или% TEMP%/% TMP%, но поскольку вы этого не делаете, вы не необходимо запустить " CMD /C
".
Итак, для вашего конкретного случая: нет веских причин для этого. Эффекты, которые вы достигаете, - это то, что ваш компьютер выполняет больше работы, замедляет процесс и использует больше памяти (и все это вы делаете на незначительном количестве на современном оборудовании).