【问题标题】:powershell get Content - Autodesk Navisworkspowershell 获取内容 - Autodesk Navisworks
【发布时间】:2021-03-13 20:59:56
【问题描述】:

您好,我正在尝试获取 Autodesk Navisworks (NWD) 文件的内容。

这是我尝试做的简单版本 -

$fileCont = Get-Content -Path $filePath
New-Item C:\Temp\tom2.nwd
Set-Content C:\Temp\tom2.nwd $fileCont

以此证明我可以成功收集到navisworks文件的内容..

虽然这是一个简单的工作流程,而我想要实现的是更大的感谢,如果我能弄清楚这一点,我就知​​道其余的了..

这是我尝试打开C:\Temp\tom2.nwd时的错误

【问题讨论】:

  • 请允许我给你一个标准的建议给新手:如果你accept 一个答案,你将帮助未来的读者,向他们展示解决了你的问题的方法。要接受答案,请单击答案左侧大数字下方的大 ✓ 符号(您将获得 2 点声望)。如果您至少有 15 个声望点,您还可以投票给其他有用的答案(也可以选择接受的答案)。如果您的问题尚未解决,请提供反馈,或者,如果您自己找到了解决方案,请self-answer

标签: powershell autodesk autodesk-navisworks


【解决方案1】:

默认情况下,Get-ContentSet-Content 都只对文本进行操作。

要处理原始 byte 数据 - 这是处理 binary 文件格式(例如 .nwd)的内容所必需的 - 您需要使用:

  • Windows PowerShell 中:-Encoding Byte
  • PowerShell [Core] v6+ 中:-AsByteStream

注意:如果所有字节一次都放入内存,则可以通过添加 -Raw 大大加快 Get-Content 调用。

【讨论】:

    【解决方案2】:

    你是对的,这种方法确实有效,但速度极慢且无法使用,但我现在可以通过关注 this post 来确认这一点

    我使用以下方法收集并发布文件中的数据。

      write-host "Creting object in bucket.."
    
    $B_Key = ''
    write-host "Bucket Key ="$B_Key
    
    write-host "File Content being uploaded to bucket object"
    
    $currentDir = Get-Location
    $sourceFile = [System.IO.Path]::Combine($currentDir, 'rac_basic_sample_project_pstest.rvt')
    $fileName = [System.IO.Path]::GetFileName($SourceFile)
    Set-ItemProperty -Path $sourceFile -Name IsReadOnly -Value $false
    
    $Clen = Get-Item $sourceFile
    $Clen = $Clen.Length
    write-host $Clen
    
    $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
                $headers.Add("Authorization", "Bearer $token")
                $headers.Add("Content-Type", "application/octet-stream")
                $headers.Add("Content-Length", $CLen)
    
    $CreateObj = 'https://developer.api.autodesk.com/oss/v2/buckets/'+$B_Key+'/objects/'+$fileName 
    $CreateObjAPIresult = Invoke-RestMethod -Uri $CreateObj -Method Put   -Headers $headers -InFile $sourceFile
    
    write-host "New Object Created in bucket"
    

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 2020-06-25
      • 1970-01-01
      相关资源
      最近更新 更多