是否可以/如何使用某些 cmdlet 停止 powershell?
Posted
技术标签:
【中文标题】是否可以/如何使用某些 cmdlet 停止 powershell?【英文标题】:Is it possible to/how do you stop powershell using certain cmdlets? 【发布时间】:2014-03-07 20:41:05 【问题描述】:Powershell 显然比 cmd 好很多,但它隐藏了基本功能。我通常用它来弄清楚如何在脚本中使用我想要的命令,但它破坏了很多基本的东西,如果我遇到困难,我最终会并排使用。
今天这是删除一个目录 - rd 或 rmdir - 这两个目录都在 powershell 中被破坏,有利于一个未记录的(从命令行)cmdlet Remove-Item。不过,我似乎一直都遇到它 - sc(用于处理服务);当您键入命令等时,在哪里可以找到正在调用的程序。
有趣的是,我实际上遇到了 sc 的问题,然后用谷歌搜索找出命令在哪里,却发现在 powershell 中也不起作用!那是令人困惑的一天
在某些情况下,一旦您知道这是怎么回事,您就可以输入完整的 exe 名称(例如,“where.exe”可以工作,而“where”本身就不行)。
但 rmdir 并非如此。虽然有趣的是在 cmd 中输入 'where rmdir' 不起作用。
所以...我的问题是 - 有没有办法在 powershell 中关闭(最好是所有)cmdlet 而只是获取正常的东西?
【问题讨论】:
阅读一下:blogs.technet.com/b/josebda/archive/2012/03/03/… @Nacimota 刚刚阅读了您发布的那篇文章的更多内容。谢谢 - 它是一个非常棒的链接。知道总是有 cmd /c 选项真的很有用 【参考方案1】:没有必要在 powershell 中关闭 cmdlet,因为这会破坏拥有它的真正原因。
无论如何,大多数“正常”的东西都在那里,您可以使用get-alias
命令找到它们。
C:\> get-alias
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ?? -> Invoke-NullCoalescing
Alias ac -> Add-Content
Alias asnp -> Add-PSSnapin
Alias cat -> Get-Content
Alias cd -> Set-Location
Alias chdir -> Set-Location
.....
..... AND A WHOLE LOT MORE!
如果您缺少一个您非常非常想拥有的命令,那么您可以轻松地添加一个新别名:
Set-Alias python2 "C:\Python27\python.exe"
为了避免每次都这样做,您只需将其添加到您的启动配置文件中即可。只需在命令提示符中输入$PROFILE
,它就会显示文件路径。如果它不存在,只需创建它,您添加到顶部的任何 powershell 命令都会在您启动新会话时自动调用。
最后一件事。所有命令都已记录在案,您只需使用两个即可轻松获取它们。
只需在您的命令提示符中输入此内容,您就可以开启 Powershell 启蒙!
get-help get-command
get-command -noun Item
get-command -verb get
【讨论】:
很好的答案 + get-help 命令的好答案 - 尝试了各种 /? -help 帮助...等等! 我想我主要是用它来自动完成文件+程序名称,尽管仍然怀念 bash 中出色的自动完成功能 @JonnyLeeds - Powershell 将 [TAB] 完成大多数事情,您只需按 Tab 键即可循环浏览项目。此外,如果您还没有,请尝试使用最新的 ISE(交互式脚本环境),它具有 GUI 风格的自动完成和搜索功能。 PowerShell 的自动完成功能非常棒,但您必须使用 PowerShell 的 cmdlet 才能真正利用它。 @Josh 很酷,我可能会检查一下。是的,powershell 非常适合自动完成,但我真的很喜欢拒绝自动完成的 bash 风格,除非有一个答案(在第一次按下时),然后如果你再次按下它会显示所有潜在的匹配项。【参考方案2】:我刚刚意识到我的问题的答案被埋在了另一个答案的 cmets 中:
要在您运行的 powershell 中删除 cmdlet
删除项目别名:某事。
我可以确认您可以使用 Josh 帖子中提到的个人资料来执行此操作,但是还有几个步骤:
默认情况下,您不能在 powershell 中运行脚本。您必须使用 set-ExecutionPolicy 更改此设置。
我通过使用 admin powershell 并输入
来更改此设置set-executionpolicy bypass
这会让你运行任何你喜欢的脚本
然后在我的个人资料脚本中,我有如下几行:
Remove-Item -force alias:sc
这个脚本运行时你不会看到错误,除非你有强制力,否则它不会做任何事情。
【讨论】:
以上是关于是否可以/如何使用某些 cmdlet 停止 powershell?的主要内容,如果未能解决你的问题,请参考以下文章
linux系统如何使用service命令怎么启动、停止或重启某些系统服务进程