2015-12-30 87 views
0

我正在使用windows BATCH創建一個腳本文件,然後使用PSFTP(使用Putty從命令行調用TransferScript.txt)調用它。有沒有辦法使用PSFTP檢查返回代碼?

的要求是得到從Unix框中輸入文件到windows,然後從Unix,但得到的回報0.我的代碼看起來像它刪除後:

TransferScript.txt

lcd E:\Temp 
cd /sap/xx/yy 
get abc.dat 
IF %ERRORLEVEL% EQ 0 
rm abc.dat 
quit 

這並未不工作,但是文件正在被複制,但沒有被刪除。誰能幫忙?

回答

1

該文件的命令處理器psftp,不cmd.exe。因此,IF不是公認的命令。但是,您可以使用命令!PSFTP將命令傳遞給Windows。這是documented here。下面是一個測試工作版本:

命令:psftp -b script.txt [email protected] -pw password

#script.txt 
!echo Connected. Getting file... 
lcd c:\temp 
cd sap/xx/yy 
get abc.dat 
!IF EXIST c:\temp\abc.dat echo Success 
!IF NOT EXIST c:\temp\abc.dat echo Failure 
quit 

只需使用任何你想要的,如果該文件的本地文件系統上存在發生rm abc.dat或更換echo Success

另一種辦法是做所有的邏輯在外部批處理文件。寫2 PSFTP腳本,如script_get.txt和script_rm.txt,只有當文件存在時才調用第二個腳本(如上所述)。

我既不知道這些解決方案在技術上回答你的問題,他們不從PSFTP捕獲錯誤狀態,但希望它是一個可以接受的解決辦法。

相關問題