2017-02-25 59 views
0

我已经搜索了这个,但我一直在搞这个。 我认为它应该很容易,但从来没有在PowerShell中做任何事情没有帮助:)循环槽文件并发送到网络服务

我需要循环槽文件目录(文档),并将它们发送到Web服务,获取一个PDF文件(与doc相同的名称)。

为一个文件,这个工程:

$MyInvocation.MyCommand.Path | Split-Path | Push-Location 

$uri = "http://someinternalurl" 
$doc= "somefilename.doc" 
$pdf= "somefilename.pdf" 

Invoke-WebRequest -Uri $uri -Method POST -InFile $doc-ContentType "application/octet-stream" -OutFile $pdf 

但有循环我一直搞乱了,我目前正试图:

$files = get-childitem c:\in\doc -Filter *.doc 
ForEach ($file in $files) { 
    $MyInvocation.MyCommand.Path | Split-Path | Push-Location 

    $uri = "http://someinternalurl" 
    $doc = Get-Content $file.Fullname ## <<-- this is where i'm surely wrong 
    $pdf = $file.Basename + '.pdf' 

    Invoke-WebRequest -Uri $uri -Method POST -InFile $in -ContentType "application/octet-stream" -OutFile $pdf 
} 

任何人都愿意伸出援助之手?

回答

0
$DocPath = 'c:\in\doc' 
$Uri = 'http://someinternalurl' 

Get-ChildItem -Path $DocPath -Filter '*.doc' | ForEach-Object { 
    $PdfPath = Join-Path -Path $_.Directory.FullName -ChildPath ($_.BaseName + '.pdf') 
    Invoke-WebRequest -Uri $Uri -Method POST -InFile $_.FullName -ContentType 'application/octet-stream' -OutFile $PdfPath 
} 
+0

谢谢,这经历了没有错误,最终结果是一个PDF的正确名称。不幸的是,它没有通过Web服务正确处理,结果是一个pdf文件,其中包含纯文本内容的文件,但仍然远远超过我现在得到的。 – Crimson