我一直在努力獲得一個腳本工作,可以FTP文件到遠程Windows服務器,並希望看看我能否得到一些幫助。我通過搜索StackOverflow上和谷歌multpile網頁,並已成功使far.Below是我PowerShell腳本FTP文件到遠程Windows服務器
邏輯如下代碼:
- 一個文件夾中選擇了一個模式最早的文件
- 連接到FTP服務器
- 將文件複製到遠程服務器
- 從文件夾將文件移動到存檔文件夾
代碼似乎是失敗的,我嘗試將文件FTP服務器 - $ webclient.UploadFile($ URI,$ latestfile)
獲取此異常:
異常調用一個 「UploadFile」 與「 2「參數:」在WebClient請求期間發生異常。「 在C:\下載\的powershell \ testmove3.ps1:22字符:26 + $ webclient.UploadFile < < < <($ URI,$ latestfile) + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId :DotNetMethodException
$source = "C:\downloads\"
$destination = "C:\dest\"
Get-ChildItem -Path C:\downloads | Where-Object { $_.name -like "TEST.CSV-PlainText*.txt" }
$latestfile=gci -path $source | Where-Object { $_.name -like "TEST.CSV-PlainText*.txt"} | sort FirstWriteTime | select -last 1
"Oldest File $latestfile"
## Get ftp object
$ftp_client = New-Object System.Net.WebClient
$user="someuser"
$pass="somepass"
$ftp_address = "ftp://ftp.testserver.com"
## Make uploads
$uri = New-Object System.Uri($ftp+$item.Name)
"Item is $latestfile"
$webclient.UploadFile($uri,$latestfile)
"File uploaded to remote servr"
Move-Item $latestfile.FullName $destination
"File $latestfile moved"
想知道爲什麼反對票嗎?在發佈問題之前,我真的嘗試了很多選擇。我認爲這個論壇是爲了互相幫助 - 它確定如果你不能幫助,但不要提供一個理由downvote。這令人沮喪。 – Prashanth
我沒有downvote,但是這個代碼需要被調試才能確定它爲什麼拋出這個異常。你比其他任何人都更有能力做到這一點。例如,我們不知道'$ item.Name'來自哪裏,或者'$ uri'和'$ latestfile'在傳遞給'UploadFile'時包含理智值,或者你的診斷代碼(例如''Item是$ latestfile「')正在輸出。沒有這種信息就很難回答這個問題。順便說一句,在你的第二個管道中,你有'排序FirstWriteTime',這應該是'排序LastWriteTime'。 – BACON
另外,用於構造'New-Object System.Uri($ ftp + $ item.Name)'參數的變量不會出現在您提供的代碼中的任何其他地方。在此之前,您可以設置一個名爲'$ ftp_address'的變量(名稱不同)。 – BACON