Как выполнить Cmd.exe молча?

23

Я использую приведенный ниже код в диалоге запуска Windows XP.

cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe"

Вы можете заменить путь к программе любой программой, установленной в вашей системе. Проблема в том, что Photoshop запускается, но окно cmd.exe по-прежнему сохраняется. Я не хочу, чтобы файл cmd.exe всплывал. Можно ли запустить программу через cmd, не открывая окно cmd.exe? Мне нужно CMD работать тихо. Кстати, мне нужен этот код для программы. Поэтому мне нужно запустить программу через cmd, но без всплывающего окна cmd.exe.

Дальнейшие комментарии

Потому что я буду использовать этот код в программе. Программа может инициировать cmd exe. Но проблема в том, что мы не знаем, какая версия фотошопа установлена. Так что это может быть Photoshop CS4 или Photoshop CS5. Обычно, когда вы вводите код ниже в Run, вы получаете Photoshop независимо от того, какой из них установлен.

photoshop

Поэтому я хочу начать Photoshop с помощью этого метода. Программа запустит cmd как Run выше, но что-то вроде ниже:

cmd /c photoshop

Но это не работает. И даже окно cmd появляется вверх. Я хочу заставить процесс работать беззвучно. Также мы не должны устанавливать какой-либо другой инструмент. Я хочу решение, которое будет работать на Windows по умолчанию.

BinaryMisfit
источник
6
Зачем использовать cmd.exe вместо того, чтобы просто запускать Photoshop напрямую, если вы вообще не хотите использовать CMD?
CarlF
Попробуйте cmd.exe / q / c [команда]
qroberts
Нет, это не сработает. Вы попробуйте! Кроме того, это будет команда / q / c, если что-нибудь cmd / q / c "c: \ program files \ microsoft office \ office11 \ winword.exe" Обратите внимание, что окно команд появляется. Он этого не хочет. Если бы вы попробовали это, вы бы знали об этом !!
Бароп
3
Не нужно расстраиваться из-за этого. Кроме того, спрашивающим является женщина, а не мужчина.
Кробертс
1
CMDOW предположительно делает это.
CGA

Ответы:

22

Проблема в том, что командная строка (cmd) не может завершиться - она ​​застряла там на экране, ожидая завершения Photoshop.

Чтобы запустить Photoshop в bat-файле и позволить пакетному файлу продолжать и завершать работу, используйте команду запуска , которая запускает указанную программу или команду в отдельном окне.

Например:

start "" "C:\Program Files\Adobe\Adobe Photoshop CS4\Photoshop.exe"
harrymc
источник
3
команда запуска не запускается из командного окна? в этом случае окно команды выскочило бы. Я бы подумал, что когда-то в cmd.exe, единственным преимуществом для начала будет то, что он позволяет вам выбрать, хотите ли вы, чтобы он был минимизирован или максимизирован ... но если он вообще не хочет этого ... как бы это помогло? И если использовать запуск из cmd.exe, то он может просто ввести путь к программе без запуска.
Бароп
@barlop: Без запуска скрипт останавливается до завершения программы. При запуске скрипт может завершиться и исчезнуть.
harrymc
из интереса, что вы подразумеваете под сценарием .. вы имеете в виду, что они запускают blah.vbs "c: \ .... \ photoshop.exe"? и имея blah.vbs (файл скрипта) запустить его?
Бароп
@barlop: Я просто имел в виду старый и настоящий файл летучих мышей, который, как я полагаю, используется постером Я изменил скрипт-> bat файл.
harrymc
5

HSTART http://www.ntwind.com/software/utilities/hstart.html

Ты можешь сделать

  • начать ... бежать
  • c:\hstart\hstart.exe /NOCONSOLE "cmd /c "c:\program files\microsoft office\office11\winword.exe""

или создайте иконку.

Некоторые используют его для запуска файлов bat ... (другие делают это из vbs, который также может запускать его cmd.exeи скрывать окно команд) ... но вы можете использовать hstart.

Я повторяю другие, хотя, поскольку вы запускаете EXE, если вы запустите start..run..pathofexe или создадите для него значок, командная строка не запустится. Так почему вы хотите запустить его из cmd.exe?

Также обратите внимание ... в DOS и Windows вы используете обратную косую черту в путях каталогов. Прямая косая черта предназначена для URL-адресов или путей к каталогам в Unix или Linux.

barlop
источник
Вы знаете, что hstartделаете? Как это скрывает созданное окно?
Росс Роджерс
1
@ RossRogers Я не знаю, но, возможно, API Monitor скажет вам apimonitor.com, а также vbscript может скрыть окно тоже. superuser.com/questions/62525/run-a-completly-hidden-batch-file, в котором упоминается программа Quiet с этого сайта joeware.net joeware.net/freetools/tools/quiet/index.htm, в которой упоминается, что его Программа использует ShellExecuteEx для этого.
Barlop
3

Лучший вариант - спросить, что вы пытаетесь сделать. Если вам нужен «код» для программы, почему бы вам не использовать Shell execute?

И я не могу представить, какой законный рабочий процесс потребует вызова командной строки, которая в свою очередь будет запускать исполняемый файл.

Девдатта Тенгше
источник
3

Существует инструмент под названием Тихий, который вы можете использовать для достижения этой цели. Просто передайте ему файл .exe или .bat в качестве аргумента. Для этого просто создайте ярлык командной строки cmd на рабочем столе. Затем получите свойства ярлыка командной строки, который вы сделали. Затем на вкладке «Ярлык» заполните поле «Цель» следующим образом:

[pathToQuiet.exe] [pathToThe(.exe)/(.bat)file]

Если вы дважды щелкнете по ярлыку, ваш процесс будет запущен, и вы можете проверить это через список процессов в диспетчере задач.

Обратите внимание, что на пути к Quiet.exe и файлу .exe или .bat не должно быть пробелов.

Мостафа
источник
QuietКажется, работает на Windows NT до XP. Ничего не говорится о Windows 10. Как вы думаете, может быть безопасно использовать его в Windows 10?
Хенрик
@ Генрик, что ты имеешь в виду под «безопасным»? Это не сломит это. Там нет вреда в попытках!
Бароп
@ Генрик, я не сделаю никакого вреда, попробуй.
Мостафа
2
cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe" %*

• [путь] \ имя вашего исполняемого файла.
• все остальные аргументы, необходимые вашему скрипту (% *) - просто для запуска exe в фоновом режиме.

user2361573
источник
Это не работает
Выдает
Работает без %*детали.
Джин Квон
1

Если вы хотите выполнить команду и сразу же выйти из командной строки, вы можете сделать это ...

cmd / c "C: // Program Files / Adobe / Adobe Photoshop CS4 / Photoshop.exe" && выход

http://www.thewindowsclub.com/command-prompt-tricks-windows (см. разделы, посвященные запуску нескольких команд)

user472096
источник
0

Почему бы не использовать это?

cmd /c start "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe exit"
Bats92
источник
1
Можете ли вы объяснить этот ответ более подробно?
bwDraco
Перепробовав все остальное, помогло только это. Спасибо. #include <windows.h> int main() { system("cmd /c start C:/WINDOWS/system32/notepad.exe"); }
Джеймс Косс
-2

Наконец-то я понял, как, по крайней мере, в Windows 10 появляется возможность скрыть / закрыть окна cmd в ярлыке, для которого я пытаюсь найти решение. Вот что я использую, чтобы открыть Active Directory - пользователи и компьютеры через runas с другим именем входа в домен.

runas.exe / savecred / user: домен \ имя пользователя "cmd / c start mmc C: \ Windows \ System32 \ dsa.msc"

возможно "cmd / c start" - это простое решение ...

Аликс Джонс
источник
Почему вы упоминаете Windows 10. Пользователь использовал Windows XP. Вы хотя бы убедились, что это работает на Windows XP?
Ramhound