Powershell显然比cmd好很多,但它隐藏了基本功能。我通常用它来弄清楚如何在脚本中使用我想要的命令,但它打破了大量基本的东西,如果我遇到了粘性点,我最终会并排使用。
今天这是删除了一个目录-rd或rmdir--这两个目录在powershell中被破坏,而有利于它没有记录(从命令行)cmdlet Remove-Item。我似乎总是遇到它 - sc(用于解决服务问题);在键入命令等时查找正在调用的程序的位置等。
搞笑我实际上用sc得到了问题,然后用Google搜索找到命令,发现在powershell中也没有工作!这是令人困惑的一天
在某些情况下,一旦你知道这是正在发生的事情,你可以输入完整的exe名称(例如'where.exe'将起作用,而'where where'本身不会)。
然而,rmdir并非如此。虽然有趣的是在cmd中输入'where rmdir'不起作用。
所以...我的问题是这样的 - 有没有办法在powershell中关闭(最好是所有)cmdlet而只是获得正常的东西呢?
答案 0 :(得分:4)
没有必要在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
答案 1 :(得分:1)
我刚刚意识到我的问题的答案被隐藏在对另一个答案的评论中:
要删除powershell中的cmdlet,请运行
Remove-Item别名:某事。
我可以确认你可以使用Josh的帖子中提到的个人资料来做到这一点,但还有几个步骤:
默认情况下,您无法在PowerShell中运行脚本。您必须使用set-ExecutionPolicy更改此内容。
我通过使用 admin powershell并输入
来更改此设置set-executionpolicy bypass
这将允许您运行任何您喜欢的脚本
然后在我的个人资料脚本中,我有以下几行:
Remove-Item -force alias:sc
这个脚本在运行时不会看到错误,除非你有力量,否则它不会做任何事情。