在dos命令提示符下使用TAB键时,您可以遍历当前目录中的文件和文件夹的名称...(它甚至似乎也可以通过DOSKEY使用历史命令)。有没有人知道是否有可能以某种方式扩展这一点,以便按TAB(或任何其他组合键)从提供的项目列表以及前面提到的来源自动完成?我认为一个例子是有序的......
我希望的行为是为使用TAB时出现的可能项添加另一个来源。在我的工作中,我们大量使用名为AutoSys的调度产品,并且几乎完全通过命令提示符来管理它。基本上我希望找到一种循环通过作业名称的方法,这样当我们已经输入作业名称的第一部分时,提示会自动填写名称...
常用命令用法: 'autorep -J JOBNAME'
我想做的例子: 'autorep -J ABC_C_EXPORT_Re'[TAB] TAB键按下允许我循环显示以'ABC_C_EXPORT_Re'开头的作业,直到找到我想要的作业。
似乎可能(但非常差)的解决方案是为环境中的每个作业创建和命名一个空文件......但这并不能成为解决问题的有效方法,特别是考虑到在任何时候我们都可以在我们的环境中拥有五万到十万个工作岗位。
我为以一种更奇怪的方式提出这个奇怪的问题而道歉......我希望我至少能够传达一种我正在问的核心问题的感觉。这样的事情对我们的运营支持人员来说是一个巨大的帮助,他们必须整天通过命令行找工作!
谢谢你看看! 斯科特
答案 0 :(得分:0)
您可以轻松制作自己的命令处理器。
这是来自Filter.vbs的东西。与此不同,你想要读取字符而不是行(所以.read(1)而不是.readline)。回显每个字符,在标签上做一些特殊操作,当用户按下enter时执行你在内存中构建的命令行,使用wshshell.exec捕获它的标准输出。
这是帮助
的内容Do While Not WScript.StdIn.AtEndOfLine
Input = Input & WScript.StdIn.Read(1)
Loop
WScript.Echo Input
这是一个菜单,并非包含所有内容。
Set Arg = WScript.Arguments
set WshShell = createObject("Wscript.Shell")
Set Inp = WScript.Stdin
Set Outp = Wscript.Stdout
Showmenu
Sub ShowHelpMenu
outp.writeline " -----------------------------------------------------------------------------"
outp.writeblanklines(1)
outp.writeline " Menu"
outp.writeline " ----"
outp.writeblanklines(1)
outp.writeline " 1 Help 2 HTML Help 3 Version 4 History"
outp.writeblanklines(1)
outp.writeline " 5 Exit"
outp.writeblanklines(1)
outp.write "Filter>"
End Sub
'=============================================
Sub ShowMenu
Do
ShowHelpMenu
Answ=Inp.readline
If Answ = "1" Then
ShowGeneralHelp "TEXT"
Elseif Answ = "2" Then
ShowGeneralHelp "HTML"
Elseif Answ = "3" Then
Version
Elseif Answ = "4" Then
History
Elseif Answ = "5" Then
Exit Do
End If
Loop
End Sub
'=============================================
Sub History
On Error Resume Next
WshShell.Run """" & FilterPath & "FilterHistory.txt""" , 1, False
err.clear
End Sub
'=============================================
Sub Version
outp.writeblanklines(1)
outp.writeline " Version"
outp.writeline " -------"
outp.writeblanklines(1)
outp.writeline " Filter Ver 0.6 - 2015 (Public Domain)"
outp.writeblanklines(1)
outp.writeline " by David Candy"
outp.writeblanklines(1)
End Sub