Пакетно отваряне на 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