首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >powershell获取内容- Autodesk Navisworks

powershell获取内容- Autodesk Navisworks
EN

Stack Overflow用户
提问于 2020-12-01 21:42:08
回答 2查看 152关注 0票数 0

嗨,我试图获得一个Autodesk Navisworks (NWD)文件的内容。

以下是我想要做的事情的一个简单版本-

代码语言:javascript
复制
$fileCont = Get-Content -Path $filePath
New-Item C:\Temp\tom2.nwd
Set-Content C:\Temp\tom2.nwd $fileCont

为了证明我可以成功地收集navisworks文件的内容。

虽然这是一个简单的工作流程,我试图实现的是更大的感谢这一点,如果我能弄清楚这一点,我知道其余的。

下面是我试图打开C:\Temp\tom2.nwd时的错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-03 22:04:52

正确的是,此方法确实有效,但非常慢且不可用,但我现在可以通过遵循这个职位来确认这一点

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

代码语言:javascript
复制
  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"
票数 1
EN

Stack Overflow用户

发布于 2020-12-01 22:48:42

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

要处理原始的字节 data --需要处理二进制文件格式(如.nwd )的内容--您需要使用:

  • Windows中的PowerShell:-Encoding Byte
  • 在PowerShell核心v6+:-AsByteStream

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65098978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档