【21-8】PowerShell 输入输出
输入
关于 PowerShell 的输入有很多个指令,我们来看一些常用的。
Read-Host
Read-Host
是一个交互式的输入指令,主要用于获取交互页面的数据,多用于必须用户干预的脚本。
示例脚本如下
执行这个脚本,接入如下:
另外可以发现,在输入的文字的最后并没有写 :
,但是 PowerShell 帮我们输出了一个冒号。
Get-Content
如果涉及到大量数据的输入,则需要用到 Get-Content
我们准备一个测试的文件 test-file.txt,内容如下:
测试脚本如下:
执行这个脚本我们可以发现:
Import-Csv
Import-Csv
的命令和 Get-Content
的作用是类似的,区别在于 Import-Csv
是通过 Csv 文件进行导入,并且导入的每一行都是一个对象.我们准备一个测试文件 test-file.csv
测试脚本如下:
执行这个脚本我们可以发现:
这里大家要注意第一行是对象的属性名,在这里我命名成了TestName
,你也可以去定义成其他的名称
常用的输入方式就是这些,当然输入数据的方式还有很多很多,这里不再一一列举,大家可以通过 Get-Command 来去查找更多的导入方式
输出
输出也有很多方式,我们来看几种。
Write-Host
Write-Host
是最常用的输出语句,可以把结果输出到 PowerShell 界面
测试脚本如下:
执行这个脚本可以得到如下内容:
Write-Output
PowerShell 中有 Write-Host 和 Write-Outup 这两个命令,但是很多人都不是很清楚两者的区别。表明上看这两者都可以输出字符到 Console 上,但是他们到底有什么不同呢?
测试脚本如下:
执行这个脚本可以得到如下内容:
我们接下来进一步进行测试,测试脚本如下:
执行结果如下:
通过测试以后发现,当直接运行方法的时候,会得到所有的两个输出,但是 write-host 是直接输出到控制台的,所以这个值是无法通过变量获得的。当然两者还有个字不同的参数支持,比如 Write-Host 支持 NewLine 等参数,实际上两者的区别是 Write-Host 只是仅仅将字符串输出到屏幕,而 Write-Output 则是可以把对象传递输出,
Export-Csv
这是一个到处成 csv 的命名,可以将内容输出到 csv 文件。
测试脚本如下:
执行这个脚本可以得到如下内容:
从结果我们可以看到获取的进程信息已经以 csv 的格式存到了指定文件。
Out-File
Out-File
可以实现输出文件的重定向。这样可以在很多时候方便地通过文件记录命令执行的输出文本提示符号。
测试脚本如下:
执行这个脚本可以得到如下内容:
执行成功的时候,在当前目录中生成了一个名为test.txt
的文件。如果在文件上加上路径信息,写的是文件的完整路径信息,那么在指定的位置会生成相应的输出文件。
使用Out-File
这个 cmdlet,把 This is PowerShell !
当作一个管道参数输入,输出到test.txt
中。这里使用一个-Append
参数,这个参数的含义是,将输入的内容附加到原文的末尾,而不覆盖原文的内容。如果我们不使用-Append
参数,第三个命令的显示结果将只有一句 This is PowerShell !
。
另外也可使用 >
来实现同样的效果。
版权声明: 本文为 InfoQ 作者【耳东】的原创文章。
原文链接:【http://xie.infoq.cn/article/7968d0343b2d17be68dc6f8a7】。未经作者许可,禁止转载。
评论