【问题标题】:Passing filepath parameters to function将文件路径参数传递给函数
【发布时间】:2018-12-26 09:34:42
【问题描述】:

下面提到的代码给出了错误,我无法解决问题。谁能帮忙,我们只是将 SourceFile 和 DestinationFile 位置传递给这个函数......

ProcessDocumentsData "D:\Files\Scan1.doc","D:\Files\Scan1.csv"

Clear-Host
function ProcessDocumentsData {
    Param(
        [string]$SourceFile,
        [string]$DestinationFile
    )

    $DestinationFileName = $DestinationFile
    $SourceFileName = $SourceFile
    $tableNum = 13

    $delimiter = ','
    $objWord = New-Object -Com Word.Application
    $objWord.Visible = $false # $false
    $objDocument = $objWord.Documents.Open($SourceFileName)
    $LETable = $objDocument.Tables.Item($tableNum)
    $LETableCols = $LETable.Columns.Count
    $LETableRows = $LETable.Rows.Count

    $RawCSV = for($r=1; $r -le $LETableRows; $r++) {
        $content= @()
        for($c=1; $c -le $LETableCols; $c++) {
            #Write-Host ("R:{0},C:{1}" -f $r,$c)
            $content += ("`"{0}`"" -f $LETable.Cell($r,$c).Range.Text -replace "(`r|`n|`t)|$([char]7)?")
        }
        $Content -join $delimiter
    }
    $Csv = $RawCSV | ConvertFrom-Csv
    $objDocument.Close()
    $objWord.Quit()
    # Stop Winword Process
    $rc = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($objWord)
    $Csv
    $Csv | Export-Csv $DestinationFileName -NoTypeInformation
}

我收到以下错误:

ProcessDocumentsData "D:\Files\Scan1.doc","D:\Files\Scan1.csv" 命令失败 在行:7 字符:1 + $objDocument = $objWord.Documents.Open($filename) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException 您不能在空值表达式上调用方法。 在行:8 字符:1 + $LETable = $objDocument.Tables.Item($tableNum) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull RPC 服务器不可用。 (来自 HRESULT 的异常:0x800706BA) 在行:21 字符:1 + $objDocument.Close() + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException

【问题讨论】:

    标签: powershell


    【解决方案1】:

    在 PowerShell 中,调用函数时,多个参数由空格分隔。

    尝试这样调用函数:

    ProcessDocumentsData "D:\Files\Scan1.doc" "D:\Files\Scan1.csv"
    

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 2021-12-02
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2023-04-08
      相关资源
      最近更新 更多