我希望此脚本从文件夹中选择最新文件,然后通过ftp将其发送到服务器。
我认为它选择的文件较晚,因为运行后FTP上有一个新文件。然而,它不断崩溃
uploading .....
uploading .....
uploading .....
$Dir="C:/log1"
$ftp = "ftpftpftp"
$user = "useruseruser"
$pass = "passpasspass"
$latest = Get-ChildItem -Path $Dir | Sort-Object LastAccessTime -Descending | Select-Object -First 1
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
for($latest){
"Uploading $latest..."
$uri = New-Object System.Uri($ftp+$latest.Name)
$webclient.UploadFile($uri, $latest.FullName)
}
答案 0 :(得分:3)
我认为你意外使用了错误的代码块。目前,您已经创建了一个无限循环,因为您没有条件for
将如何退出。
这种循环的一个简单例子是
for(){"Hello? Is it me you are looking for?"}
它的结构应该是这样的
for (initialization; condition; repeat){code block}
一个例子是
for($index =1; $index -lt 6;$index++){$index}
只要$Dir
不为空,就不需要代码块。如果if($latest){}
包含文件(在此代码结构中),则$latest
只能用于防止小错误。
if($latest){
"Uploading $latest..."
$uri = New-Object System.Uri($ftp+$latest.Name)
$webclient.UploadFile($uri, $latest.FullName)
}
您的示例输出中没有文件名,所以我怀疑您的$dir
不包含任何文件?