Powershell WinSCP不会移动它

时间:2014-08-25 14:28:45

标签: powershell winscp

这是我的剧本:

$Path = "G:\FTP\APX\APXDropoff\Pay"
$Archive = "G:\FTP\APX\APXDropoff\Pay\Archive"
#$BankOfTulsa = "H:\Documentation\Projects\PJ\BankOfTulsa"
#$compareDate = (Get-Date).AddDays(-1)


$LastFile = Get-ChildItem $Path -Recurse | Where{$_.Name -Match "^CPdb(\d{6})(\d{8}).txt"}; $LastFile

CP $LastFile $Archive

#Call WinSCP Navigate to Incoming\Temp folder for test.
# & 'C:\Program Files (x86)\WinSCP\WinSCP.com' /command "option batch abort" "option confirm off" "open sftp:BankOfTulsa/" "put $LastFile /incoming/arp/"

所以这是我的问题。我使用reg ex来查找CP移动它的文件就好了但是当我上传到winSCP时它说文件不存在。

它按名称调用它,所以变量就在那里......

Authenticating with pre-entered password.
Authenticated.
Starting the session...
Reading remote directory...
Session started.
Active session: [1] BankOfAmerica
File or folder 'CPdb08131408252014.TXT' does not exist.
System Error.  Code: 2.

The system cannot find the file specified
(A)bort, (R)etry, (S)kip, Ski(p) all: Abort

请帮助!!

1 个答案:

答案 0 :(得分:1)

我认为您的问题在于$LastFile不包含您尝试上传的文件的完整路径。我建议您使用.FullName的{​​{1}}属性,因为您拥有$LastFile cmdlet中的属性。

Get-ChildItem

另外请尽量避免使用别名,因为有些人可能不知道"put $($LastFile.FullName) /incoming/arp/" CP的别名

<强>有感

Copy-Item有可能匹配更多的文件。如果是这种情况,它可能会使脚本的其余部分混乱。

您可以在评论中执行以下操作:

$lastFile