0

PowerShell v1.0 显然是一个基于控制台的管理 shell。它实际上并不需要 GUI 界面。如果需要,例如 Exchange 2007 管理 GUI,它构建在 PowerShell 之上。您可以在 PowerShell 脚本中使用 Windows 窗体创建自己的 GUI。我的问题是,“您认为添加一个简单的图形界面最适合哪种 PowerShell 脚本或管理任务?您创建了 winform 来完成什么?”

4

6 回答 6

3

为了回答蒙库特的建议,这里有一个使用 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功能,但是在 PowerShell v1 中, FolderBrowserDialogSTA 线程的要求是相当困难的。


编辑:感谢GordonFolderBrowserDialog ,这是一个显示使用 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 }
}
于 2008-10-19T20:38:51.973 回答
1

我最喜欢的命令行 shell 旧 gui 工具是一个选择目录工具,当从命令行执行时会打开一个 gui 目录选择对话框。当您必须 cd 到具有长路径名的其他目录时,非常有帮助。

不幸的是,我找不到以前使用的旧 exe 工具。(无论如何它是pre-powershell)另外,我对powershell还不够熟悉,无法弄清楚如何直接从powershell调用对话框并将其设为cmd-let或其他任何东西,但这就是我正在谈论的一些python混入。

这里是:

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>

和python代码:

import Tkinter
import tkFileDialog

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

print dirname

我想再次拥​​有这个工具,如果有人知道如何清理它,那么我可以调用一个命令,如“cdir”或请评论。

于 2008-10-09T03:22:15.077 回答
0

Isnt this mainly used by powershell guys who want to make there scripts pretty before handing to users or people who know nothing about a console and like pretty pictures ?!

于 2008-10-08T14:28:34.173 回答
0

我会前往 PowerGUI 站点,我相信您已经知道 Jeff。用户在那里做的事情是我认为的 powershell 和 GUI 融合的范例。能够生成对象列表,然后深入了解对象的层次结构,或在对象上运行脚本。这种事情就是我会看到 GUI 界面大放异彩的地方。

于 2008-10-08T14:41:51.353 回答
0

我对这里的一些示例抱有希望,因为我确信如果他们有漂亮的 UI 并且可以用鼠标使用,我可以委派很多任务。

但就添加用户界面而言,我很难想出一个没有用户界面的地方。我能想到的大多数示例要么只是简化或暴露现有 UI 的选定部分。它们通常只是与现有数据不同的视图,这些数据不存在,或者在提供的管理控制台中很难看到。或者它们通过循环或流水线扩展某些功能(如果需要,您仍然可以使用鼠标更改 200 个文件的名称)。我所做的几乎所有仍在使用的事情要么是一次性脚本,要么是某个地方的计划任务。

我在等待想法:)

于 2008-10-09T01:47:04.410 回答
0

实际上,更多地考虑这一点,在我看到的使用 GUI 的示例中,它们似乎是多个输入前端,这比带有多个开关的命令行容易得多,这些开关可能很长且难以可视化。

于 2008-10-09T07:30:45.823 回答