我有多个文件需要发送到FTP站点。 这些文件始终是.CSV,但文件名不断变化。
我有一个PowerShell脚本,可以成功发送文件。但代码的文件名是硬编码的。我似乎找不到动态选择文件名的方法,并用动态文件名将其写入FTP站点。 (希望有道理)
有人可以帮忙吗?
非常感谢
答案 0 :(得分:2)
您可以使用其他属性吗?例如,在我的情况下,我经常需要选择目录中的最新文件。我使用LastWriteTime属性做了类似的事情。
$lastWrittenCSV = Get-ChildItem -Path C:\csvFiles\ -Filter *.csv | Sort-Object -Descending LastWriteTime | Select-Object -First 1
然后,您可以针对$lastWrittenCSV.FullName
(完整路径)运行脚本,并将其上传为$lastWrittenCSV.Name
(只是文件名)。
您甚至可以使用某种标记文件来跟踪自上次上传以来哪些文件是新的,然后上传它们:
$flagFile = Get-Item C:\csvFiles\lastupload.flg
Get-ChildItem -path C:\csvFiles\ -Filter *.csv | ? {$_.LastWriteTime -gt $flagFile.lastWriteTime} | ForEach {Upload-File $_.FullName}
New-Item -ItemType File -Force -Path $flagFile.FullName
祝你好运!