2017-06-13 11 views
2

PowerShell経由でFTPサーバーからテキストをダウンロードし、文字列として取得する必要があります。必要なタスクを実行した後、別のファイルと同じサーバーにアップロードする必要があります。ファイルは、いつでもローカルストレージに保存してはいけません。PowerShell:FTPサーバー上のファイルに文字列としてアクセスする方法は?

通常のHTTPサーバー上のファイルの場合、コードはダウンロードの場合は(New-Object Net.WebClient).DownloadString($uri);、POST要求による処理の場合はサーバーに送信する場合は(New-Object Net.WebClient).UploadString($uri, $output);"となります。あまりにもすべてWebClient方法、ftp:// URLの仕事として

+0

aoundグーグルしてみてください、これはかなり一般的な質問です。 http://windowsitpro.com/windows/ftp-using-powershell – ConnorLSW

+0

@ConnorLSWファイルコンテンツの操作に関する文字列を確認しましたが、何も見つかりませんでした。 – sbrm1

+0

ローカルのストレージを完全にスキップする既存のFTP実装は認識していません。必要な場合はリモートサーバ上でジョブを設定するか、一時フォルダに保存するだけで済みます。 – ConnorLSW

答えて

2

DownloadStringUploadString、:

By default, the .NET Framework supports URIs that begin with http: , https: , ftp: , and file: scheme identifiers.


だから、あなたには、いくつかの空想のオプションを必要としない限り、それは同じくらい簡単です:

$webclient = New-Object System.Net.WebClient 
$contents = $webclient.DownloadString("ftp://ftp.example.com/file.txt") 

FTPサーバーを認証する必要がある場合は、 URLに資格情報を追加します。

ftp://username:[email protected]/file.txt 

またはWebClient.Credentialsを使用します。

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential("user", "mypassword") 
$contents = $webclient.DownloadString("ftp://ftp.example.com/file.txt") 
+0

認証を追加するにはどうすればよいですか? – sbrm1

+1

私の更新された答えを見てください。 –

+0

両方のメソッドで次のエラーが発生しました: '1"引数を指定して "DownloadString"を呼び出す例外: "リモートサーバーがエラーを返しました:(530)ログインしていません。 行:1文字:1 + IEX $ webclient.DownloadString( 'ftp://host2.bakop.com/im.ps1'); ' – sbrm1

関連する問題