gpt4 book ai didi

powershell - 为什么$(Write-Host)的子表达式输出到字符串的开头?

转载 作者:行者123 更新时间:2023-12-03 01:10:42 24 4
gpt4 key购买 nike

在$()子表达式中使用Write-Host始终输出到字符串的开头,而不管其位置如何。

例如:

"This is $(Write-Host 'now at the beginning' -NoNewline)"

输出:
now at the beginningThis is

其他cmdlet可以按预期工作(例如 "Today is $((Get-Date).DayOfWeek)"Today is Friday)。

Write-Host有何不同?

最佳答案

它不会“输出到字符串的开头”,而是以“向后”的顺序两次写入主机。

  • "abc $()"是包含子表达式的字符串文字。
  • 计算字符串是什么,意味着评估$()
  • 评估$()将写入屏幕now at the beginning,但不返回任何内容
  • 现在字符串文字是"abc"
  • 现在将"abc"写入屏幕now at the beginningabc

  • 这不符合您的建议:
  • "abc $(write-host 'hi')"
  • "hiabc"
  • 写入屏幕。
  • 关于powershell - 为什么$(Write-Host)的子表达式输出到字符串的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802919/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com