【问题标题】:Powershell Write-Host append to text file - computer name and time stampPowershell Write-Host 附加到文本文件 - 计算机名称和时间戳
【发布时间】:2019-10-02 23:20:17
【问题描述】:

我是 Powershell 新手,目前正在编写我的第二个脚本,请耐心等待。我正在尝试执行write-host 并输出我的写入主机消息以及时间戳以及正在将我的各种脚本块完成到文本文件的计算机,并且我遇到了使事情起作用的语法问题。

出于测试目的,我尝试了以下操作。一旦我得到语法,这将转到服务器 - 现在它转到我的本地 C: 驱动器。

write-host "folders created successfully $env:computername" >> c:\scripts\testlog.txt

我看到的行为是正在创建文本文件,但其中没有内容 - 全部为空白。

【问题讨论】:

  • Write-Host 更改为Write-Output 会发生什么?主机被发送到控制台而不是标准输出

标签: powershell


【解决方案1】:

使用 Start-Transcript cmdlet - 它可以捕获 Write-Host 输出,如下所示:

Start-Transcript -Path .\testlog.txt
Write-Host "Hello World"
Stop-Transcript

【讨论】:

  • 这个文件里有各种垃圾
【解决方案2】:

Write-Host 不使用标准输出。它总是直接输出到控制台,跳过任何其他内容。 Write-Output 确实输出到标准输出。

要回答您的具体问题——如何将命令的输出附加到文本文件中——您可以使用:

Write-Output "folders created successfully $env:computername" >> C:\scripts\testlog.txt

不过,您也可以使用Add-Content

Add-Content -Path C:\scripts\testlog.txt -Value "folders created successfully $env:computername"

或者你可以通过管道发送到Out-File -Append:

"folders created successfully $env:computername" | Out-File -FilePath C:\scripts\testlog.txt -Append

为什么要使用不同的方法?他们有a few differences,您不会经常遇到。 redirection operators 不能让您对所发生的事情(编码等)进行太多控制。

【讨论】:

    【解决方案3】:

    Write-Host 仅用于将数据发送到控制台而不是其他任何地方。如果您希望将数据发送到其他地方,即。要归档,您需要将其发送到输出流

    write-output "folders created successfully $($env:computername)" >> c:\scripts\testlog.txt
    

    "folders created successfully $($env:computername)" >> c:\scripts\testlog.txt
    

    注意$env 周围的子表达式。我们需要确保变量在双引号中正确展开。

    查看Bacons answer,了解如何使用本机 PowerShell cmdlet 执行此操作

    【讨论】:

    • 我的计算机名称来自我导入的 CSV 文件 $computername = $viewobject.desktop 我希望它附加到写入输出的文本文件中from Write-Output ("VMWare Backup folder created") >> \\servername\dump\test1.txt}} 没有创建文本文件。是否必须提前创建?我试过了,没有任何文字被输出到文本文件中。
    • @h34th3r 里面有问题吗?您不使用环境变量吗?...啊,您编辑了评论。不,文件不需要提前存在。如果我尝试那个小 sn-p,我会得到一个以“VMWare Backup folder created”为内容的文件
    猜你喜欢
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2011-01-31
    • 2016-07-19
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多