PowerShell中的同步命令运行及信息输出

在PowerShell中有时候当我们运行一个命令的时候,在控制台上都会直接输出他结果信息,当我们想要把输出信息保存到一个文件的时候我们一般都会直接用管道传递给另一个输出命令将信息保存进一个文本文件里。

比如下面的命令,我们将一个进程任务信息输出来,再通过管道将信息保存到一个文件里:

 Get-Process -ProcessName "notepad" | Out-File -FilePath "C:\testfile2.txt"

但是,当你运行上面这行命令后,你根本不知道是否正确运行了,那么有一个折中的办法就是先把要运行的命令赋值给一个变量:

PS C:\> $ProcessInfo = Get-Process -ProcessName "notepad"
PS C:\> $ProcessInfo

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     87       7     1368       5920 ...50     0.11   1204 notepad
     84       7     1364       5744 ...50     0.05   4888 notepad
     97       9     1572      13508 ...63     0.13   4972 notepad


然后,输出变量看是否得到正确的值后再把该变量传递给后面的输出命令将信息去保存,像下面这样:
PS C:\> $ProcessInfo | Out-File -FilePath "C:\textfile2.txt"

这样多少你会感觉特别麻烦,在PowerShell 5.0中其实有一个更直接的命令可以即运行命令又将命令的结果赋值给一个变量或者导出到一个文件里,那就是Tee-Object命令,我们下面看看大致的使用例子:

PS C:\> Get-Process -ProcessName "notepad" | Tee-Object -Variable ProcessInfo

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     87       7     1368       5920 ...50     0.11   1204 notepad
     84       7     1364       5744 ...50     0.05   4888 notepad
     97       9     1572      13508 ...63     0.13   4972 notepad


PS C:\> $ProcessInfo

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     87       7     1368       5920 ...50     0.11   1204 notepad
     84       7     1364       5744 ...50     0.05   4888 notepad
     97       9     1572      13508 ...63     0.13   4972 notepad

你可以仔细发现,当我们把之前同样的命令传递给Tee-Object命令后,控制台输出了信息,但是当我们用$ProcessInfo变量时,这个变量同时也保存了之前命令所运行的结果。


你甚至还可以使用FilePath参数,将信息结果直接输出到一个文本文件中,像下面这样:

PS C:\> Get-Process -ProcessName "notepad" | Tee-Object -FilePath "C:\ProcessInfo.txt"

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     87       7     1368       5920 ...50     0.11   1204 notepad
     84       7     1364       5744 ...50     0.05   4888 notepad
     97       9     1572      13508 ...63     0.13   4972 notepad


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值