首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FTP上传和REname

FTP上传和REname
EN

Stack Overflow用户
提问于 2016-12-09 04:30:26
回答 1查看 1.1K关注 0票数 0

请原谅我的脚本新手,我有一个PowerShell脚本,它查找特定文件扩展名的文件夹并将它们上传到FTP站点并创建一个日志文件。

这是很好的工作,但有一个新的要求重新命名文件扩展名后,上传。我知道我需要使用WebRequest而不是WebClient,但我正在努力解决这个问题。我怎样才能做到这一点?下面是当前脚本:

代码语言:javascript
复制
$LogFile='C:\test\log.txt'

$TimeStamp= get-date -Format yyyyMMdd"_"HHmmss
$ScriptrunTime= get-date 

Add-Content $LogFile ' '
Add-Content $LogFile '------------------------------------------------------'

Add-Content $LogFile ' '

$msg= '-----------   Script run time: ' + $TimeStamp +'     -----------'
Add-Content $LogFile $msg

Add-Content $LogFile ' '

$FTP="ftp://username:password@ftp.site/folder/"

$webclient = New-Object System.Net.WebClient 

$webclient.Proxy = [System.Net.WebRequest]::DefaultWebProxy

$Source ='C:\source'

try{

$data = @(dir  -file $Source\*.tmp | select fullname, name)

$msg='Source: ' + $Source
Add-Content $LogFile $msg

Add-Content $LogFile ' '
$msg='Target: ' + $FTP
Add-Content $LogFile $msg

Add-Content $LogFile ' '
$msg='There are ' + $data.Count + ' files to upload'
Add-Content $LogFile $msg

foreach($item in $data){


Add-Content $LogFile ' '

$UploadFile=$ftp+$item.Name
$UploadFileName=$item.FullName


try
{
    $msg="Uploading $UploadFile"
    Add-Content $LogFile $msg

     $webclient.UploadFile($UploadFile, $UploadFileName)


    Add-Content $LogFile ' '
    Add-Content $LogFile "Upload completed"

    Add-Content $LogFile ' '

    Add-Content $LogFile ' '
    Add-Content $LogFile "Delete file"



    }
    catch
    {
    $ErrorDesc=$_.Exception.Message

    Add-Content $LogFile ' '
    $msg='Error occured: '+ $ErrorDesc
    Add-Content $LogFile $msg
}

Add-Content $LogFile ' '

}
}
catch
{

$ErrorDesc=$_.Exception.Message
Add-Content $LogFile ' '
$msg='Error occured: '+ $ErrorDesc
Add-Content $LogFile $msg
}

$TimeStamp= get-date -Format yyyyMMdd"_"HHmmss
$ScriptrunTime= get-date 
Add-Content $LogFile ' '
$msg='-----------   Script end time: ' + $TimeStamp +'     -----------'
Add-Content $LogFile $msg
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 13:07:43

WebClient.UploadFile方法不要求addressfileName参数引用同名的文件。这样就可以在上传文件时更改文件的扩展名。假设新的扩展是ext

代码语言:javascript
复制
$UploadFile = $ftp + [IO.Path]::ChangeExtension($item.Name, "ext");

$webclient.UploadFile($UploadFile, $UploadFileName);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41053135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档