2015-03-18 4 views
1

При использовании клавиши TAB в командной строке dos вы можете циклически переключаться между именами файлов и папок в текущем каталоге ... (и, похоже, он также работает с историческими командами через DOSKEY). Кто-нибудь знает, возможно ли это как-то расширить таким образом, чтобы нажатие TAB (или любая другая комбинация клавиш) было автозаполнено из предоставленного списка элементов, а также из ранее упомянутых источников? Я думаю, что пример в порядке.Возможно ли расширить функциональность автозаполнения на основе TAB?

Мое желание - добавить еще один источник возможных элементов, которые появятся при использовании TAB. На моей работе мы активно используем продукт планирования под названием AutoSys и администрируем его почти исключительно через командную строку. В принципе, мне очень хотелось бы найти способ циклического перебора имен заданий, чтобы запрос был автозаполнен именами, когда мы уже ввели первую часть имени задания ...

Использование общих команд: 'autorep -J JOBNAME'

Пример того, что я хотел бы сделать: «AutoRep -J ABC_C_EXPORT_Re» [TAB] где нажатие клавиши TAB позволяет мне перебрать рабочих мест, которые начинаются с «ABC_C_EXPORT_Re», пока не найдете тот, что я хочу ,

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

Прошу прощения за то, что вы задали этот странный вопрос еще более странным образом ..... Надеюсь, что я, по крайней мере, смог передать смысл центрального вопроса, который я задаю. Что-то вроде этого было бы огромной помощью для наших сотрудников службы поддержки, которые должны найти работу по командной строке в течение всего дня!

Спасибо, что посмотрели! Scott

ответ

0

Вы можете сделать свой собственный командный процессор довольно простым.

Вот что-то из Filter.vbs. В отличие от этого вы хотели бы читать символы, а не строки (так .read (1), а не .readline). Выбросьте каждый символ, сделайте что-то особенное на вкладке, когда пользователь нажимает ввести выполнение командной строки, которую вы создали в памяти, захватив ее stdout с помощью 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 
+0

PS: Консоли не нуждаются в CMD. CMD - это просто обычная консольная программа, в этом нет ничего особенного. Chkdsk - еще одна консольная программа. Вы можете запустить chkdsk в консоли без загрузки CMD или иметь какое-либо отношение к ней. (введите 'chkdsk c:' в Start - Run - chkdsk запускается в консоли, но CMD не запускается вообще). – Serenity

Смежные вопросы