转至:http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html

  在命令行中定义别名、变量和函数,只是将它们添加在当前PowerShell的会话中。退出会话后,这些更改就会丢失。想要在以后的会话中也能使用它们,就要将它们定义在配置文件中。

配置文件

  PowerShell的配置文件,不像Windows操作系统中那样使用.ini文件,也不像多数应用程序那样使用XML文件。PowerShell的配置文件都是些普通的PowerShell脚本文件。需要注意的是,这些配置文件的文件名是固定、不能更改的。并且它们受到脚本执行策略的约束,就是说在默认情况下,也就是脚本执行策略为Restricted的时候,这些配置文件也不能被执行,也就是无效的。

配置文件详细

  影响PowerShell命令行的配置文件总共4个,它们的名字分别存贮在变量$PROFILE.AllUsersAllHosts、 $PROFILE.AllUsersCurrentHost、$PROFILE.CurrentUserAllHosts和$PROFILE.CurrentUserCurrentHost(可简写为$PROFILE)中。它们的作用范围分别为“所有用户所有Shell”、“所有用户当前Shell”、“当前用户所有Shell”和“当前用户当前Shell”。以上配置文件按加载顺序给出,如果有冲突项,后者覆盖前者。

  需要说明一下,“用户”的概念跟计算机中的用户概念相同;这里的“Shell”或者叫“主机程序”,是指Shell分类,而非打开的一个个PowerShell示例(会话)。我们常见的Shell种类有两种,PowerShell命令行和PowerShell ISE环境。其余还有那些Shell或者主机类型,我没仔细考究。

PowerShell ISE的配置文件

  PowerShell ISE也是我们常用的PowerShell环境,它也有4个配置文件。其中两个影响所有主机或者Shell的配置文件是与PowerShell命令行共用的,影响当前主机程序或者Shell的,则有专门的配置文件。这些配置文件的全名(包括路径)也存储在$Profile的属性中,属性名跟在PowerShell命令行中的一致,但是属性值不同,反映的是ISE的配置文件名信息。

定义配置文件

  配置文件虽然名称已经确定,但它们不会随PowerShell安装自动生成,而是需要使用者在需要的时候自己创建。它们的创建过程跟一般脚本的创建过程一样。关于脚本文件的详细信息,可参见“PowerShell入门(八):函数、脚本、作用域”。但请务必保证自己创建的配置文件的路径和文件名(包括扩展名.ps1)都要跟系统定义的完全一致,否则无效。

  四个配置文件的定义方式完全相同,下面以影响当前用户当前Shell的配置文件为例,说明定义配置文件的过程:

  1、创建配置文件

  任何创建文本文件的方式,在这里都适用。但请注意文件的扩展名必须是.ps1。简单起见,我们使用命令类创建,命令如下:

New-Item -ItemType file -Path $PROFILE  -Force

  2、编辑配置文件

  用记事本或者任意文本编辑器打开配置文件,添加你的配置项。这些配置项可以实定义别名、变量、函数,也可以运行命令,用点“.”获取来源,导入模块等。下面是定义变量和用点“.”获取来源的示例。(假设我有一个脚本文件,名字叫myScript.ps1,里边定义了一个函数HelloWorld())

$greet = "Hello Luke!"

. .\myScript.ps1

将以上内容输入配置文件,保存、关闭。

  3、验证配置文件

  打开一个新的PowerShell命令行,输入$greet,回车,结果显示Hello Luke!;输入HelloWorld,回车,结果显示Hellow, World!。打开PowerShell ISE,输入$greet,回车,啥也没有;输入HelloWorld,显示未能找到命令的错误。哈哈,验证通过。

结语

  配置文件既为公司或者项目组统一PowerShell环境提供了简易的方案——为所有工作机提供相同的影响所有用户所有Shell的配置文件,也为程序员的个性化要求提供了方法——自己定义影响当前用户当前Shell的配置文件。此外,配置文件提高PowerShell交互式命令行的效率是有目共睹的,但对于想要精确控制变量定义、模块导入的脚本来说,可能是个隐患。所以,哪些内容应该写入配置文件,请慎重考虑。

【转】PowerShell入门(十):使用配置文件的更多相关文章

  1. 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...

  2. powershell入门教程-v0.3版

    powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia ...

  3. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  4. C#基础入门 十

    C#基础入门 十 Windows应用程序的界面设计 Form.cs:窗体文件,一般用于存放程序员为窗体编写的代码: Form.Designer.cs:窗体设计文件,其中的代码是由VS自动生成的,一般不 ...

  5. Spring入门(十四):Spring MVC控制器的2种测试方法

    作为一名研发人员,不管你愿不愿意对自己的代码进行测试,都得承认测试对于研发质量保证的重要性,这也就是为什么每个公司的技术部都需要质量控制部的原因,因为越早的发现代码的bug,成本越低,比如说,Dev环 ...

  6. 网络编程懒人入门(十):一泡尿的时间,快速读懂QUIC协议

    1.TCP协议到底怎么了? 现时的互联网应用中,Web平台(准确地说是基于HTTP及其延伸协议的客户端/服务器应用)的数据传输都基于 TCP 协议. 但TCP 协议在创建连接之前需要进行三次握手(如下 ...

  7. 【转】PowerShell入门(三):如何快速地掌握PowerShell?

    转至:http://www.cnblogs.com/ceachy/archive/2013/02/01/HowToLearnPowerShell.html 如何快速地掌握PowerShell呢?总的来 ...

  8. PowerShell入门

    最近需要写个Windows的脚本,以前一直使用cmd.exe来写批处理脚本,这次接触到了PowerShell,准备把学习过程中学到的知识点整理在这里: 相关文章: 1.https://www.cnbl ...

  9. Spring_day01--课程安排_Spring概念_IOC操作&IOC底层原理&入门案例_配置文件没有提示问题

    Spring_day01 Spring课程安排 今天内容介绍 Spring概念 Spring的ioc操作 IOC底层原理 IOC入门案例 配置文件没有提示问题 Spring的bean管理(xml方式) ...

随机推荐

  1. Reg于Wire的不同点

    Reg 比喻为“相机” Reg型,是always中被赋值的信号,往往代表触发器,但不一定是触发器 Wire 比喻为“镜子” Wrie型,assign指定的组合逻辑的信号 好好想想 ,还是能有个大致的概 ...

  2. [转]Oracle Hidden Parameter:_allow_resetlogs_corruption

    本文转自eygle博客,原文地址:http://www.eygle.com/archives/2005/10/oracle_hidden_allow_resetlogs_corruption.html ...

  3. 一个人java深入理解java logback配置

    http://blog.csdn.net/initphp/article/category/1230072/2

  4. Linux下搭建Windows KMS服务器

    这几天微软发布了Windows 10 RedStone 1 Build 14390, 于是我第一时间下载进行了试用.和之前那种不激活也没有任何异样不同,现在的版本如果不激活有些功能就受限了,比如你无法 ...

  5. (四)G1 garbage collector

    g1专为大内存,多内核机型设计.可以兼顾高吞吐量和低暂停时间. g1将堆分为多个相同大小内存块,并发的标记线程,使得g1掌握了各个内存块的活对象数量, 内存回收阶段,g1根据用户指定的暂停时间,选择部 ...

  6. js滚动条滚动到某个元素位置

    scrollTo(0,document.getElementById('xxx').offset().top);

  7. 一个node项目的框架搭建流程

    项目服务端编程语言node,前端js,数据库mongodb, 开发工具用webstorm. 使用express应用生成器,生成项目雏形. 安装应用生成器工具,命令是npm install expres ...

  8. selenium RC+JAVA 运行所遇到的问题

    1.报错一 Failed to start new browser session: java.lang.RuntimeException: Firefox 3 could not be found ...

  9. [原创]快速指定SQLDeveloper所使用JDK的方法

    就众多的免费SQL开发工具来讲,Oracle出品的SQLDeveloper 还是一个很不错的选择. 看到网上不少的帖子讨论SQL Developer 启动的时候报告找不到Java Home(或JDK) ...

  10. Python学习笔记 for windows

    学习来源 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738136 ...