打开带有提示文本但未调用的windows批处理
如何在提示后打开带有预定义文本的批处理窗口,而不调用命令 假设我想用文件名打开带有提示文本但未调用的windows批处理,windows,batch-file,command-prompt,Windows,Batch File,Command Prompt,如何在提示后打开带有预定义文本的批处理窗口,而不调用命令 假设我想用文件名t.txt调用notepad.exe 我将使用以下行创建一个cmd文件: start notepad "t.txt" 但我希望该文件由用户指定打开 因此,cmd文件应该只打开一个cmd窗口并“键入”start notepad,而不实际执行此操作。通常,您必须启动一个命令提示窗口:start cmd,而不是直接启动notepad。但是无论是start还是cmd都不能提供您想要的功能。在实际发出命令之前,向批处理文件中添加一
t.txt
调用notepad.exe
我将使用以下行创建一个cmd文件:
start notepad "t.txt"
但我希望该文件由用户指定打开
因此,cmd文件应该只打开一个cmd窗口并“键入”
start notepad
,而不实际执行此操作。通常,您必须启动一个命令提示窗口:start cmd
,而不是直接启动notepad。但是无论是start
还是cmd
都不能提供您想要的功能。在实际发出命令之前,向批处理文件中添加一个简单的echo
命令和一个pause
命令是否有效
Echo When the other operation completes return to this window
Pause
start notepad "t.txt"
这将提供回显,然后等待用户按任意键,然后再实际尝试使用该文件名启动记事本。您可以使用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");
你只想回显命令吗?这正是我想要的。圣诞快乐!