我一直试图使用PowerShell快速搜索Windows文件和设置(比GUI更快),但在提高搜索速度方面遇到了一些困难,我无法在web上找到解决方案。
首先,我想制作自己的cmdlet,它可以根据需要显示我自己的文本(我想把它放在我定义的常用的赞扬中,因为'get-command‘是快速搜索的大方法,但不知道如何做到。我用“echo”cmdlet制作了简单的脚本,但只显示了一次。
第二,如何将Set-Location、Get-ChildItem和sorted合并在一起,快速改变目录,并按dir内容的名称列表自动显示排序?可能是自定义cmdlet之类的。
第三,如何将设置位置与推送位置合并在一起,以便轻松键入“popd”以返回到以前的dir?
发布于 2015-05-17 00:54:02
我觉得你的语言有点混乱。实际的Cmdlet是用.Net写的。
不过,我不认为这是你想要的。您所描述的任务可以用脚本文件和函数来完成,这些文件和函数不太复杂。
首先,我想制作自己的cmdlet,它可以根据需要显示我自己的文本(我想把它放在我定义的常用的赞扬中,因为'get-command‘是快速搜索的大方法,但不知道如何做到。我用“echo”cmdlet制作了简单的脚本,但只显示了一次。
这听起来像剧本。见Get-帮助about_Scripts。
第二,如何将Set-Location、Get-ChildItem和sorted合并在一起,快速改变目录,并按dir内容的名称列表自动显示排序?可能是自定义cmdlet之类的。
您可以创建一个带有参数的脚本,以便非常容易地完成这个任务(嗯,当您熟悉它时,就可以轻松地完成它)。
第三,如何将设置位置与推送位置合并在一起,以便轻松键入“popd”以返回到以前的dir?
这是一个例子吗?Pop-Location已经存在了,而且它已经有了一个别名popd。
如果您想查看MS文档,我将从脚本开始。在微软虚拟学院( Microsoft )完成开始使用PowerShell 3.0跳转开始课程也可能是值得的,这是我听说过的为数不多的任何类型的教程之一。您正在谈论的内容从第9部分开始,但老实说,您听起来很新鲜,可能会从整个类中受益。
有一个一些微软的文档,可以说是一个如何,但它是相当命中错过,老实说。PowerShell文档的最大问题是,它是一个很好的技术参考,一个平庸的食谱,一个糟糕的用户手册,甚至不假装是一个教程。它是为那些已经知道如何使用脚本的人准备的。
我不知道任何其他好的在线教程,但您可能需要检查其他地方,如/r/PowerShell subreddit。
发布于 2015-05-18 18:34:35
第一
高级功能
Get-Help about_advanced_functions
您要查找的术语是函数,特别是带有cmdletbinding()的高级函数。这使您可以构建自己的函数,这些函数充当命令,甚至可以调试、whatif、命名参数集、pipleline输入等等。
配置文件
Get-Help about_Profiles
将您常用的函数存储在文件中,并每次使用配置文件来执行它。
别名
Get-Help alias get-alias或gal列出了所有当前定义的别名。几乎所有常用的命令都有CLI别名。(在脚本中使用它们会使您的脚本不可读,包括我在内的许多人都认为。)
使用别名命令和配置文件设置持久别名。
模块
将您的功能合并到一个模块中,该模块可以自动加载和共享。
ISE片段
Edit, Start Snippets或CTRL+J
第二
Get-ChildItem或gci、dir或ls允许您指定路径(位置参数),默认的排序是按名称排序。
如果要更改目录,并强制目录列表按名称排序,可以使用cd c:\windows;gci|sort name或类似于
第三
(pushd和popd已经是别名了)
Push-Location
# do stuff
Pop-Location或
pushd
# do stuff
popd最后的想法
get-help,get-member,get-alias,get-command都是非常强大的工具。请记住,设置位置和以及所有的-Location和-Item命令可以不仅仅在字母驱动器中使用。它们可以在任何PSDrive中使用。PSDrives包括注册表、AD、Env、Alias、变量、函数、由模块添加的其他功能等等。所以,给get-psdrive一个驱动器,看看如何在一个地方学习命令,您实际上是在同时学习其他命令。
发布于 2015-05-17 02:30:15
我认为您要做的是在配置文件中定义自己的函数/别名,每次启动shell时都会加载这些函数/别名。
若要创建空白配置文件(您可能需要测试Test-Path $profile中还没有一个配置文件):
New-Item $profile -Type File -Force然后您可以在记事本、ISE或其他任何地方编辑它,并添加函数和别名。
函数在功能上类似于cmdlet,除非它们是用powershell编写的。Cmdlet实际上是用.NET dll编写的。别名(例如cd)只是指向cmdlet/函数。
修改现有的cmdlet是一个高级主题,但这可以通过代理函数完成。但是,我认为您现在应该只定义您自己的函数和别名,如果需要的话,应该提供一个关于代理函数的更具体的问题。
https://stackoverflow.com/questions/30282036
复制相似问题