2008-10-08 3 views
0

PowerShell v1.0, очевидно, представляет собой консольную административную оболочку. Это не требует интерфейса GUI. Если требуется, как и графический интерфейс управления Exchange 2007, он построен поверх PowerShell. Вы можете создать свой собственный графический интерфейс с помощью Windows Forms в сценарии PowerShell. Мой вопрос: «Какими сценариями PowerShell или задачами управления, по вашему мнению, лучше всего пользоваться с добавлением даже простого графического интерфейса? Что вы создали winforms для выполнения?»PowerShell: CLI или GUI - какой вам нужен или предпочитаете?

ответ

0

Разве это в основном не используется ребятами из powershell, которые хотят сделать там скрипты до того, как передать пользователям или людям, которые ничего не знают о консоли и как красивые картинки?!

+0

Я не знаю, если я бы так далеко, иногда вы хотите иметь GUI. Мне любопытно, что может произойти в PowerShell. – 2008-10-08 14:34:06

0

Я бы отправился на сайт PowerGUI, который, я уверен, вы уже знаете о Джеффе. То, что делают пользователи, - это то, что я бы рассмотрел в качестве примера сплайсинга powershell и графического интерфейса. Возможность генерации списка объектов затем развернуться в иерархической структуре объектов или запустить сценарии на объекте. Это то, где я вижу интерфейс интерфейса графического интерфейса.

+0

PowerGUI, безусловно, выводит это на новый уровень. Я все еще надеюсь узнать, какие автономные решения PoweShell придумали, для чего нужен графический интерфейс или какие ситуации. – 2008-10-08 15:17:00

0

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

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

Я жду идей :)

1

Мой любимый старый графический инструмент для командной строки оболочки был инструмент выбора каталога, который при exectued из командной строки откроется диалоговое окно графический интерфейс выбора каталога. Очень полезно, когда вам нужно cd в другой каталог с длинным именем пути.

Я не мог найти старый инструмент exe, который я использовал для неудачи. (В любом случае, это была предварительная оболочка) Кроме того, я не достаточно знаком с powershell, чтобы понять, как вызвать диалог из powershell напрямую и сделать это cmd-let или что-то еще, но вот что я говорю с некоторыми . питон смешивают в

Здесь:

PS D:\> $dir = & "C:\python25\python.exe" "C:\python25\selectdir.pyw"; cd $dir; 
# Directory selection dialog opens here, user selects the directory to goto. 
PS D:\NewDirectory> 

И код питона:

import Tkinter 
import tkFileDialog 

root = Tkinter.Tk() 
root.withdraw() 
dirname = tkFileDialog.askdirectory(parent=root) 

print dirname 

Я хотел бы иметь этот инструмент еще раз, если кто-нибудь знает, как очистить это так Я могу просто вызвать команду вроде «cdir» или что-то прокомментировать.

0

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

3

В ответ на monkut's suggestion, вот простая функция, чтобы получить пути к файлам с использованием WindowsForms OpenFileDialog:

[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') 

function Select-File([string]$initialDirectory=$pwd, [switch]$multiselect) { 
    $dialog = New-Object Windows.Forms.OpenFileDialog 
    $dialog.ShowHelp = $true # http://tinyurl.com/6cnmrr 
    $dialog.InitialDirectory = $initialDirectory 
    $dialog.Multiselect = $multiselect 

    if($dialog.ShowDialog() -eq 'OK') { $dialog.FileNames } 
    $dialog.Dispose() 
} 

Я также попытался создать подобную Select-Directory функцию, но FolderBrowserDialog's STA thread requirement довольно трудно достичь в PowerShell v1.


Edit: Благодаря Gordon, вот обходной путь, чтобы показать FolderBrowserDialog с помощью COM:

function Select-Directory() { 
    $app = New-Object -COM Shell.Application 
    $directory = $app.BrowseForFolder(0, "Select Directory", 0) 
    $path = $directory.Self.Path 
    if($path) { return $path } 
} 
Смежные вопросы