不能哭!唱歌吧!继续唱下去吧!不是为了赞美神,是为了向神挑战而唱! 收藏本站
登陆 / 注册 搜索

阅读: 6.2K   回复: 3

[# 系统基础] PowerShell入门(十):使用配置文件(转)

soarcloud 「龙战于野」 2016-8-5 17:46 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

  在命令行中定义别名、变量和函数,只是将它们添加在当前PowerShell的会话中。退出会话后,这些更改就会丢失。想要在以后的会话中也能使用它们,就要将它们定义在配置文件中。
8 u( {8 F( S" Z4 \, _" Z( J5 g% O
1 Q- n8 c) L# Q( n配置文件
+ X0 q1 s* R5 g" E- @4 M! x$ u- P  PowerShell的配置文件,不像Windows操作系统中那样使用.ini文件,也不像多数应用程序那样使用XML文件。PowerShell的配置文件都是些普通的PowerShell脚本文件。需要注意的是,这些配置文件的文件名是固定、不能更改的。并且它们受到脚本执行策略的约束,就是说在默认情况下,也就是脚本执行策略为Restricted的时候,这些配置文件也不能被执行,也就是无效的。
- V! u- @3 `+ s# i" W/ ^4 Z0 X1 a9 A) E6 a: o6 a1 ~9 N4 B
配置文件详细, t' S; Y3 i2 K4 I/ A) }
  影响PowerShell命令行的配置文件总共4个,它们的名字分别存贮在变量$PROFILE.AllUsersAllHosts、 $PROFILE.AllUsersCurrentHost、$PROFILE.CurrentUserAllHosts和$PROFILE.CurrentUserCurrentHost(可简写为$PROFILE)中。9 B) F* z. B3 R( i1 `& e$ F$ Y

* k# I' w$ O# K1 F% L) O% j4 {它们的作用范围分别为“所有用户所有Shell”、“所有用户当前Shell”、“当前用户所有Shell”和“当前用户当前Shell”。以上配置文件按加载顺序给出,如果有冲突项,后者覆盖前者。( a$ e2 ]! a0 ^$ w
' i6 B  Q7 A7 x
  需要说明一下,“用户”的概念跟计算机中的用户概念相同;这里的“Shell”或者叫“主机程序”,是指Shell分类,而非打开的一个个PowerShell示例(会话)。我们常见的Shell种类有两种,PowerShell命令行和PowerShell ISE环境。其余还有那些Shell或者主机类型,我没仔细考究。0 t  H4 T0 |; ]) ^

8 k0 Q. I- q7 `& |% WPowerShell ISE的配置文件
5 u7 a* x. k* P% k& V1 n& s  PowerShell ISE也是我们常用的PowerShell环境,它也有4个配置文件。其中两个影响所有主机或者Shell的配置文件是与PowerShell命令行共用的,影响当前主机程序或者Shell的,则有专门的配置文件。这些配置文件的全名(包括路径)也存储在$Profile的属性中,属性名跟在PowerShell命令行中的一致,但是属性值不同,反映的是ISE的配置文件名信息。
2 {5 `8 f( ^+ j8 `4 H' Z3 e4 v8 M% P
定义配置文件' h( C6 [* |6 V+ @# g, q
  配置文件虽然名称已经确定,但它们不会随PowerShell安装自动生成,而是需要使用者在需要的时候自己创建。它们的创建过程跟一般脚本的创建过程一样。关于脚本文件的详细信息,可参见“PowerShell入门(八):函数、脚本、作用域”。但请务必保证自己创建的配置文件的路径和文件名(包括扩展名.ps1)都要跟系统定义的完全一致,否则无效。
" k- Q$ l7 e" c( i% x- `+ V6 H  [& h- @6 j& q. K* ^- h
  四个配置文件的定义方式完全相同,下面以影响当前用户当前Shell的配置文件为例,说明定义配置文件的过程:
$ D( A$ ]/ K" _# i1 i2 H- V3 o  1、创建配置文件
8 Q6 E. ~6 R2 k& m/ ^" s  任何创建文本文件的方式,在这里都适用。但请注意文件的扩展名必须是.ps1。简单起见,我们使用命令类创建,命令如下:New-Item -ItemType file -Path $PROFILE  -Force+ p3 B2 [! ]) l) r* V. @+ V
  2、编辑配置文件
. Z( [' D  J/ g6 x/ l; v$ m  用记事本或者任意文本编辑器打开配置文件,添加你的配置项。这些配置项可以实定义别名、变量、函数,也可以运行命令,用点“.”获取来源,导入模块等。下面是定义变量和用点“.”获取来源的示例。(假设我有一个脚本文件,名字叫myScript.ps1,里边定义了一个函数HelloWorld())
3 g" n& P. K/ R/ Z9 @& S7 i+ S$greet = "Hello Luke!"
* I% Y6 ^* `0 J* f. .\myScript.ps1
( j. t2 @/ Y$ S- T& \将以上内容输入配置文件,保存、关闭。
+ F  m0 J" M9 y7 c6 W  3、验证配置文件
! @( \: a# j$ ?# g2 Q. C  打开一个新的PowerShell命令行,输入$greet,回车,结果显示Hello Luke!;输入HelloWorld,回车,结果显示Hellow, World!。打开PowerShell ISE,输入$greet,回车,啥也没有;输入HelloWorld,显示未能找到命令的错误。哈哈,验证通过。
6 K1 e1 i+ V! P* O
- `* X% h* I" {( D! [结语
6 n. c* p& m' S7 Y: i& p  配置文件既为公司或者项目组统一PowerShell环境提供了简易的方案——为所有工作机提供相同的影响所有用户所有Shell的配置文件,也为程序员的个性化要求提供了方法——自己定义影响当前用户当前Shell的配置文件。此外,配置文件提高PowerShell交互式命令行的效率是有目共睹的,但对于想要精确控制变量定义、模块导入的脚本来说,可能是个隐患。所以,哪些内容应该写入配置文件,请慎重考虑。
: T, B$ x- f' {. ^/ p+ }5 L; ?! n1 O( `( N
上一篇
下一篇
soarcloud在网吧通宵,花了 2 个 金币.


映画 「出类拔萃」 2018-5-5 14:28 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

--------本条消息来自银河中心,神圣而不可侵犯!
巴黎环抱的花海 「龙战于野」 2018-5-8 07:09 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

路过& W$ z6 u1 x) ?+ g6 ?& M* ]
            
; U- N4 N: u: V( G✎______________________________________
1 ~2 ?4 I7 u) }          ✎﹏๓₯㎕✉    # ], w1 _: Y6 m6 R3 M( y/ ~2 ]
            有些人,一辈子都不会在一起,但是可以藏在心里一辈子。
4 }& i0 |2 U4 N% c: q- [* X
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2021-6-15 23:15 , Processed in 0.023602 second(s), 20 queries , Redis On.

© 2015-2021 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表