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

我以前都是把脚本片段放在字符串中,多行字符串叫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

(0)

相关推荐

  • PowerShell 获取系统信息的函数

    复制代码 代码如下: function Get-SystemInfo{  param($ComputerName = $env:COMPUTERNAME) $header = 'Hostname','OSName','OSVersion','OSManufacturer','OSConfiguration','OS Build Type','RegisteredOwner','RegisteredOrganization','Product ID','Original Install Date'

  • PowerShell批量安装msi后辍软件的方法

    如果你要安装的MSI包不止一个,可不能使用Invoke-Item,否则PowerShell不会等待前一个安装包安装完毕,就已经运行下一个安装包了.如果在批处理中,我们可能会使用msiexec file.msi /wait.在PowerShell中也可以借助于msiexec.先就这些安装包路径存储到数组中吧: 复制代码 代码如下: $msi = @("c:\file1.msi", "c:\file2.msi", "c:\file2.msi") 然后

  • PowerShell多线程执行前后台作业的例子

    下面例子使用Powershell线程运行了两个后台任务和一个前台任务,创建几个运行时间长点的任务,并且每个任务命令中添加使用Start-Sleep. 复制代码 代码如下: $start = Get-Date $task1 = { Start-Sleep -Seconds 4; Get-Service }$task2 = { Start-Sleep -Seconds 5; Get-Service }$task3 = { Start-Sleep -Seconds 3; Get-Service } #

  • PowerShell快速创建一个指定大小文件的实例分享

    有时做性能测试时,需要准备几个大文件,内容不限制.我以前比较傻,是这样做,拼命地往一个文本文件中写字符串,要写2G,也得花很长时间.今天发现使用FileStream可以秒杀. 复制代码 代码如下: $tempFile="pstips.net"$fs=New-Object System.IO.FileStream($tempFile,[System.IO.FileMode]::OpenOrCreate)$fs.Seek(2GB,[System.IO.SeekOrigin]::Begin)

  • Powershell后台作业、异步操作实例

    Powershell是单线程程序且一次只能做一件事情.后台作业能额外增加Powershell进程在后台处理作业.当需要程序同时运行且数据量不是很大时它能很好的解决问题.但从Powershell后台回传数据是一个非常麻烦的工作,它将浪费很多时间.将会导致脚本更慢. 这里有3个并发执行任务: 复制代码 代码如下: $start = Get-Date # get all hotfixes$task1 = { Get-Hotfix } # get all scripts in your profile$

  • 自定义PowerShell控制台提示符风格的方法

    PowerShell控制台的默认命令行提示为PS+(当前路径)+箭头,形如: 复制代码 代码如下: PS C:\Users\非苔> 前面加PS是PowerShell的标志,为了和传统的CMD控制台区别开来.后面加当前路径和箭头是为了和一般的命令行保持一致.这样的设计本来无可厚非,但是如果我在写博客时,需要执行某个命令然后连同结果一起复制出来,麻烦来了.比如我要演示Get-Date,打开控制台,敲入命令: 复制代码 代码如下: PS C:\Users\非苔> Get-Date 2014年4月16

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

    我以前都是把脚本片段放在字符串中,多行字符串叫here-string,比如: 复制代码 代码如下: $code=@"Invoke-WebRequestGet-Service -Name AdobeARMservice"@ 缺点有二: 假如我这个$code字符串很长,执行时出错了,我想排错,但因为它是字符串,在ISE中不能高亮显示,不方便.所以,我估计得把这个字符串中的脚本单独拿出来,放在另外一个ise窗口中仔细辨认一番.$code中的字符串定义了一些变量,我不想这些变量自动解析成值.那

  • shell脚本源码安装nginx的详细过程

    SHELL概念 SHELL是什么?SHELL是Linux内核跟用户之间沟通的桥梁: SHELL也是一个命令解释器,用户可以输入命令到SHELL,SHELL将命令传递给Linux内核,内核处理完毕,返回给SHELL,SHELL将返回的结果返给用户终端: SHELL是外壳,中间件,外壳有很多的种类,bash.csh.ksh.zsh等: SHELL和SHELL编程有什么关系?SHELL是命令解释器,用户和操作系统沟通桥梁,而SHELL编程基于SHELL解释器来实现具体的功能或者需求: SHELL命令.

  • mysqld_safe启动脚本源码阅读、分析

    前几天读了下mysqld_safe脚本,个人感觉还是收获蛮大的,其中细致的交代了MySQL数据库的启动流程,包括查找MySQL相关目录,解析配置文件以及最后如何调用mysqld程序来启动实例等,有着不错的参考价值:与此同时,脚本中涉及了很多shell编程中的小技巧,像变量解析,sed替换转义,进程优先级的判断以及无处不在test结构等等,当作Linux shell的学习素材还是非常合适的,下面是我的环境: 数据库版本: MySQL 5.1.45 操作系统版本: Red Hat Enterpris

  • 利用ASP输出excel文件实例讲解

    在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有用的,应为excel不是关系型的数据库.对于一个固定格式,这个格式里有复杂的单元格合并,边框线条样式,还有图案,单元格之间还有公式关系等等的,我想最容易理解的就是在后台打开一个已有设定好模板的文件,然后在需要的地方插入数据,保存,输出... ... 这里提到的这种方法是直接建立一个excel对象,在后台可以更方便的对excel文档进行各种操作. 服务器端还必

  • PowerShell一次打开多个文件的方法

    有时候,我们想通过PowerShell脚本一次性打开多个文件,尤其是相同后缀名的所有文件.我们来写一个函数,函数名为Open-File,通过传递一个*.后缀给此函数,实现一次性打开所有的此后缀的文件. 复制代码 代码如下: Function Open-File{    param(        [Parameter(Mandatory=$true)]        $path    )    $paths = Resolve-Path $path -ea SilentlyContinue   

  • 在vs2010中,输出当前文件路径与源文件当前行号的解决方法

    看到一道题目:vs2010中,如何输出当前文件路径和源文件当前行号.不知道,于是立刻上网搜,于是找到了答案:总结一下,有用的时候就直接拿来用了,据说它们是系统预定义宏,但这种宏并不是在某个文件中定义的,而是由编译器定义的. 复制代码 代码如下: cout << __LINE__ << endl;  //输出语句所在的行号 cout << __FILE__  << endl; //输出文件名(包括路径) cout << __TIME__ <&

  • mysql查询结果输出到文件的方法

    mysql查询结果导出/输出/写入到文件 方法一: 直接执行命令: mysql> select count(1) from table  into outfile '/tmp/test.xls'; Query OK, 31 rows affected (0.00 sec) 在目录/tmp/下会产生文件test.xls 遇到的问题: mysql> select count(1) from table   into outfile '/data/test.xls'; 报错: ERROR 1 (HY

  • MyEclipse设置Console输出到文件的实现方法

    Java程序默认输出为Console,如果要想将Console输出结果保存到文件中,则需要做如下配置: 在JAVA程序上右键--> Run As --> Run Configurations 选择Common窗口,设置文件保存路径,以及是否以追加方式保存console输出到文件. 以上这篇MyEclipse设置Console输出到文件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • php 读取输出其他文件的实现方法

    如下所示: ob_start(); iconv('utf-8','gb2312',readfile('1.html')); //直接输出文本内容 echo '<hr>'; $data = file_get_contents('./1.html',null,null,0,10); var_dump($data);//输出字符串 echo '<hr>'; $data = file('./1.html'); var_dump($data);//输出数组 echo '<hr>'

  • PHP读取并输出XML文件数据的简单实现方法

    本文实例讲述了PHP读取并输出XML文件数据的简单实现方法.分享给大家供大家参考,具体如下: config.XML文件: <?xml version="1.0" encoding="UTF-8"?> <node> <student> <name>张明</name> <email>1234567890@qq.com</email> <username>一样菜</use

随机推荐