【发布时间】:2016-05-25 18:54:58
【问题描述】:
所以我一直在尝试找出这个脚本来尝试将每日文件上传到我们的 FTP 服务器。由于文件以一致的文件名上传,因此我过去曾成功使用过此脚本: IE: FILE_NAME_2016-05-25.csv(当前日期的格式总是这样)
所以这在文件名保持这种一致性时有效,但我需要使用它来获取具有不一致值的文件,并附加到末尾。 IE:FILE_NAME_2016-05-25_0503(最后一个值永远不一致)。
那么有没有办法在文件/文件夹变量的末尾使用通配符来解决这个问题?
我的代码(注意我对 powershell 很陌生)
#Get's file from the FTP using today's date
Write-Host "Please wait while your file downloads"
$server = "ftp.server.net"
$user = "user"
$pass = "pass"
$invocation = (Get-Variable MyInvocation).Value
$localpath = Split-Path $invocation.MyCommand.Path
$TodayDate = (get-date)
$FileNameDate = date $TodayDate -f yyyy-MM-dd
$remotefilepath = "inbox/sub1/sub2/FILE_NAME_$FileNameDate_[*].txt"
$localfilename = "FILE_NAME_$FileNameDate.csv"
$localfilelocation = "$localpath\$localfilename"
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user, $pass)
$uri = New-Object System.Uri(“ftp://$server/$remotefilepath”)
$webclient.DownloadFile($uri, $localfilelocation)
我尝试在末尾使用通配符,但似乎我做错了什么
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为它与编程无关;它是关于如何使用 FTP 命令通过通配符查找文件的。试试Super User?
-
我正在使用此脚本自动处理和下载来自 FTP 的文件以导入 SQL 服务器。通常我们会使用 SSIS 来执行此操作,但是因为我们没有 MSSQL 的许可证,所以我们必须以不同的方式来处理它。我很抱歉,但我认为 powershell 脚本和自动化任务是 stackoverflow 编程伞的一部分
-
我的意思是,您的脚本似乎可以正常发送 FTP 命令,只是您不知道要发送哪些命令。我仍然不确定它是否符合主题,但我也不确定它是否偏离主题,所以我撤回了我的近距离投票,我会让其他人决定。
标签: powershell ftp