我写了一个PowerShell脚本,使用FTP将文件下载到我的本地机器上.
下载文件后,我想从FTP服务器中删除它.我也写了这段代码.但不幸的是它没有用.
任何人都可以帮我指出我的代码有什么问题吗?任何线索都会有所帮助......
这是我的代码
function Delete-File($Source,$Target,$UserName,$Password)
{
$ftprequest = [System.Net.FtpWebRequest]::create($Source)
$ftprequest.Credentials = New-Object System.Net.NetworkCredential($UserName,$Password)
if(Test-Path $Source)
{
"ABCDEF File exists on ftp server."
$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DeleteFile
$ftprequest.GetResponse()
"ABCDEF File deleted."
}
}
function Get-FTPFile ($Source,$Target,$UserName,$Password)
{
# Create a FTPWebRequest object to handle the connection to the ftp server
$ftprequest = [System.Net.FtpWebRequest]::create($Source)
# set the request's network credentials for an authenticated connection
$ftprequest.Credentials =
New-Object System.Net.NetworkCredential($username,$password)
if(Test-Path $targetpath)
{
"ABCDEF File exists"
}
else
{
"ABCDEF File downloaded"
$ftprequest.Method = …Run Code Online (Sandbox Code Playgroud) 我想检查FTP服务器上是否存在某个文件.我写了代码,Test-Path但它不起作用.然后我编写代码来获取FTP服务器文件大小,但它也不起作用.
我的代码
function File-size()
{
Param ([int]$size)
if($size -gt 1TB) {[string]::Format("{0:0.00} TB ",$size /1TB)}
elseif($size -gt 1GB) {[string]::Format("{0:0.00} GB ",$size/1GB)}
elseif($size -gt 1MB) {[string]::Format("{0:0.00} MB ",$size/1MB)}
elseif($size -gt 1KB) {[string]::Format("{0:0.00} KB ",$size/1KB)}
elseif($size -gt 0) {[string]::Format("{0:0.00} B ",$size)}
else {""}
}
$urlDest = "ftp://ftpxyz.com/folder/ABCDEF.XML"
$sourcefilesize = Get-Content($urlDest)
$size = File-size($sourcefilesize.length)
Write-Host($size)
Run Code Online (Sandbox Code Playgroud)
此代码无效.
错误
获取内容:找不到驱动器.名为"ftp"的驱动器不存在.在C:\ documents\upload-file.ps1:67 char:19 + $ sourcefilesize = Get-Item($ urlDest)+ ~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(ftp:String)[Get-Content],DriveNotFoundException + FullyQualifiedErrorId:DriveNotFound,Microsoft.PowerShell.Commands.GetContentCommand
不知道如何解决这个错误?有什么方法可以检查一些存在到FTP服务器?任何关于此的线索都会有所帮助.