【问题标题】:How convert this bash to powershell variable如何将此 bash 转换为 powershell 变量
【发布时间】:2023-02-10 20:25:11
【问题描述】:

我需要将以下 bash 变量转换为 powershell 变量

event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Contoso", "model": "Monster"},"dataVersion": "1.0"} ]'

我发现如何更换

date +%Y-%m-%dT%H:%M:%S%z

经过

$eventtimesend = Get-Date -UFormat "%Y%m%d%H%M"

但不确定如何替换或需要修改哪些内容才能注入 2 个变量 $eventtimesend 和 $RANDOM 以与 powershell 语法兼容。

感谢您的帮助

【问题讨论】:

    标签: bash powershell


    【解决方案1】:

    使用可扩展的此处字符串,然后将变量表达式嵌套在字符串中:

    $eventtimesend = Get-Date -UFormat "%Y%m%d%H%M"
    
    $eventJson = @"
    [ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "${eventtimesend}", "data":{ "make": "Contoso", "model": "Monster"},"dataVersion": "1.0"} ]
    "@
    

    ... 或者,直接在字符串文字中的子表达式 $(...) 中进行 Get-Date 调用:

    $eventJson = @"
    [ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "$(Get-Date -UFormat "%Y%m%d%H%M")", "data":{ "make": "Contoso", "model": "Monster"},"dataVersion": "1.0"} ]
    "@
    

    $RANDOM 呢?

    PowerShell 没有任何自动变量,如 $RANDOM,因此您需要将其替换为对 Get-Random 的调用:

    $eventJson = @"
    [ {"id": "$(Get-Random -Maximum ([int16]::MaxValue + 1))", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "$(Get-Date -UFormat "%Y%m%d%H%M")", "data":{ "make": "Contoso", "model": "Monster"},"dataVersion": "1.0"} ]
    "@
    

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 2017-10-01
      相关资源
      最近更新 更多