PowerShell脚本源码输出到文件的最佳写法

626 查看

我以前都是把脚本片段放在字符串中,多行字符串叫here-string,比如:

复制代码 代码如下:
$code=@"
Invoke-WebRequest
Get-Service -Name AdobeARMservice
"@

缺点有二:

假如我这个$code字符串很长,执行时出错了,我想排错,但因为它是字符串,在ISE中不能高亮显示,不方便。所以,我估计得把这个字符串中的脚本单独拿出来,放在另外一个ise窗口中仔细辨认一番。
$code中的字符串定义了一些变量,我不想这些变量自动解析成值。那我就得最外面用单引号,如果字符串里面恰好也大量使用了单引号,估计反引号(转义字符)又得泛滥了。
今天分享的不是母鸡中的战斗机,而是母鸡中的柴可夫斯基:神奇的大括号。

复制代码 代码如下:

{
Invoke-WebRequest 'http://www.jb51.net'
Get-Service -Name AdobeARMservice
$name='Mosser Lee'
} | Out-File 'my.ps1'

上面的脚本能在ISE中高亮显示,并且执行后,大括号中的源脚本,干干净净,原汁原味地保存到了脚本文件中。

文章出处:http://www.pstips.net/output-source-scripts-to-file.html