找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19908|回复: 2

[转载教程] PowerShell 技能连载 - 测试不带别名的脚本

[复制链接]
发表于 2014-7-21 11:17:16 | 显示全部楼层 |阅读模式
本帖最后由 victorwoo 于 2014-7-21 16:56 编辑

原始链接:PowerShell 技能连载 - 测试不带别名的脚本
发表日期:2014-07-18


适用于所有 PowerShell 版本

别名在交互式 PowerShell 控制台中用起来很酷,但是不应在脚本中使用它们。在脚本中,请使用基础的命令(所以请使用 `Get-ChidItem` 而不是 `dir` 或 `ls`)。

要测试一个脚本,您可以删除所有的别名然后试试脚本是否任然能运行。以下是如何删除特定 PowerShell 会话中的所有别名的方法(它不会影响其它 PowerShell 会话,并且不会永久地删除内置的别名):

  1. PS> Get-Alias [i] ForEach-Object { Remove-Item -Path ("Alias:" + $[/i].Name) -Force }

  2. PS> dir
  3. dir : The term 'dir' is not recognized as the name of a cmdlet, function, script file, or operable
  4. program. Check the spelling of the name, or if a path was included, verify that the path is correct
  5. and try again.
  6. At line:1 char:1
  7. + dir
  8. + [s]~[/s]
  9.     + CategoryInfo           : ObjectNotFound: (dir:String) [], CommandNotFoundException
  10.     + FullyQualifiedErrorId : CommandNotFoundException

  11. PS> Get-Alias
复制代码
如您所见,所有别名都清空了。现在如果一个脚本使用了别名,它将会抛出一个异常。而关闭并重启 PowerShell 之后,所有内置的别名都恢复了。


本文国际来源:Test-Driving Scripts without Aliases
发表于 2014-7-21 11:39:16 | 显示全部楼层
请问下版主,个人建立的alias不能出现在脚本中,系统自带的也不行吗?这个不是系统内置的吗,所有powershell客户端应该都能支持才对啊
发表于 2014-7-21 15:13:40 | 显示全部楼层
回复 2# Linuxer


英文原文是这样的:
Aliases can be cool in interactive PowerShell but should not be used in scripts.

不是说不能使用别名,而是不应该或不建议使用别名
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:45 , Processed in 0.014709 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表