这是我的剧本:
$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
请帮助!!
答案 0 :(得分:1)
我认为您的问题在于$LastFile
不包含您尝试上传的文件的完整路径。我建议您使用.FullName
的{{1}}属性,因为您拥有$LastFile
cmdlet中的属性。
Get-ChildItem
另外请尽量避免使用别名,因为有些人可能不知道"put $($LastFile.FullName) /incoming/arp/"
是CP
的别名
<强>有感强>
Copy-Item
有可能匹配更多的文件。如果是这种情况,它可能会使脚本的其余部分混乱。
您可以在评论中执行以下操作:
$lastFile