Powershell 从word文档中找到的范围中提取节
下面的代码工作正常,我们得到了需要提取的起点和终点,但我无法获取range.set/select以工作 我能够从下面得到范围,只需要额外的,并保存到CSV文件Powershell 从word文档中找到的范围中提取节,powershell,ms-word,Powershell,Ms Word,下面的代码工作正常,我们得到了需要提取的起点和终点,但我无法获取range.set/select以工作 我能够从下面得到范围,只需要额外的,并保存到CSV文件 $found=$paras2.Range.SetRange($startPosition,$endPosition)-这件东西不起作用 $file = "D:\Files\Scan.doc" $SearchKeyword1 = 'Keyword1' $SearchKeyword2 = 'Keyword2' $word = N
$found=$paras2.Range.SetRange($startPosition,$endPosition)
-这件东西不起作用
$file = "D:\Files\Scan.doc"
$SearchKeyword1 = 'Keyword1'
$SearchKeyword2 = 'Keyword2'
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$doc = $word.Documents.Open($file,$false,$true)
$sel = $word.Selection
$paras = $doc.Paragraphs
$paras1 = $doc.Paragraphs
$paras2 = $doc.Paragraphs
foreach ($para in $paras)
{
if ($para.Range.Text -match $SearchKeyword1)
{
Write-Host $para.Range.Text
$startPosition = $para.Range.Start
}
}
foreach ($para in $paras1)
{
if ($para.Range.Text -match $SearchKeyword2)
{
Write-Host $para.Range.Text
$endPosition = $para.Range.Start
}
}
Write-Host $startPosition
Write-Host $endPosition
$found = $paras2.Range.SetRange($startPosition, $endPosition)
# cleanup com objects
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($doc) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
这行代码就是问题所在
$found = $paras2.Range.SetRange($startPosition, $endPosition)
当通过开始和结束位置指定范围时,有必要相对于文档进行指定。上面的代码指的是段落
集合。此外,它使用设置范围
,但应仅使用范围
方法。因此:
$found = $doc.Range.($startPosition, $endPosition)
$found=$doc.Range($startPosition,$endPosition)。Select()Write Host$found不打印任何内容,不知道如何将其导出到csv或doc文件如果$found不是$null,请尝试类似于
$found.Text | Out File“C:\found.txt”
的操作,然后开始和结束位置的Write Host
语句返回什么?90945,94679-写入主机打印这些数字@Cindymister