我有一个PowerShell脚本可以将文件上传到FTP服务器。一切正常。
$program = "C:\Putty\psftp.exe"
$pass = "test"
$hst = "109.18.205.14"
$user = "admin"
$file = "d:\FTP\Test.txt"
$cmd = @(
"cd /Test",
"put $file",
"bye"
)
[String]($cmd | & $program -pw $pass "$user@$hst" 2>&1)
我的问题是我需要确认上传是否成功。我只需要一条输出消息,说明"成功"或"失败" ,任何想法?
答案 0 :(得分:1)
您应该能够将其集成到您自己的代码中。我刚刚在您的列表中添加了dir
命令。我不确定将它作为一个单独的会话来做是否明智。只留下你的其他变量,我只是将其添加到最后。
$cmd = @(
"cd /Test",
"put $file",
"dir",
"bye"
)
$return = @()
($cmd | & $program -pw $pass "$user@$hst") | ForEach-Object{$return+=$_}
If($return -match (Split-Path $file -Leaf)){Write-Host "Success"} Else {Write-Host "Failed"}
在制作中,我不确定这是如何工作的。只需删除put
中的$cmd
行,就可以检查文件。 注意我虽然可以做$return = ($cmd | & $program -pw $pass "$user@$hst" -P 49000)
之类的事情,但不知何故psftp命令kepy失败,这就是为什么我将输出传输到名为$return
的数组
答案 1 :(得分:0)
如果可以测试路径以查看创建的文件是否存在。
如果存在,则返回true
类似的东西:
if(test-path $file){
echo success;
}
Else{
echo false;
}