Открыть пакет Windows с текстом подсказки, но без вызова

Как можно открыть пакетное окно с предопределенным текстом после приглашения и не вызывать команду?

Скажем, я хочу вызвать notepad.exe с именем файла t.txt.

Я бы создал файл cmd с этой строкой:

start notepad "t.txt"

Но я хочу, чтобы файл открывался, указанный пользователем.

Таким образом, файл cmd должен просто открыть окно cmd и «ввести» start notepad без фактического выполнения этого.


person Juergen    schedule 23.12.2014    source источник
comment
Вы просто хотите echo выполнить команду?   -  person SomethingDark    schedule 23.12.2014


Ответы (2)


Вы можете сделать это с помощью Vbscript:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd", 9 'opens cmd.exe
WScript.Sleep 500 'gives cmd a time to load
WshShell.SendKeys "start notepad"

Если вы хотите это в своем файле cmd, попробуйте следующее:

@if (@X)==(@Y) @end /*
start cmd.exe
cscript //E:JScript //nologo "%~f0"
exit/b
*/
var obj = new ActiveXObject("WScript.Shell");
obj.SendKeys("start notepad");
person Rafael    schedule 23.12.2014
comment
Это именно то, что я хотел. С Рождеством! - person Juergen; 24.12.2014

Обычно вам нужно запустить окно командной строки: start cmd, а не запускать блокнот напрямую. Но ни start, ни cmd не предлагают желаемой функции. Будет ли работать добавление простого echo в ваш пакетный файл с инструкциями и pause перед фактическим вводом команды?

Echo When the other operation completes return to this window
Pause
start notepad "t.txt"

Это обеспечит эхо, затем подождите, пока пользователь нажмет любую клавишу, прежде чем пытаться запустить блокнот с этим именем файла.

person Mimp    schedule 23.12.2014