2017-08-14 53 views
-2
@echo off 
set datetoday=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2% 
set /a batchdate=%datetoday%-1 
cd c:\batchreports\DAYENDREPORTS\PREDAYEND\%batchdate% 

ftp 192.168.18.188 
username 
password 
cd autoemail 
send DEALS_ENTERED_TODAY_ALL_2OM_UP_20170813.xls 
bye 
exit 

當我嘗試通過在命令提示符線運行的代碼行它工作正常,但如果我運行的批處理文件本身,它只是提示登錄界面,這意味着我的代碼停止工作在用戶名行......我應該怎麼做,以便代碼將繼續?批處理文件不會讓我登錄

+0

當'%datetoday%'爲'20170801'時'%batchdate%'擴展到了什麼地方?我會下注而不是'20170731'。 – Compo

+0

該代碼行存儲昨天的日期在一個變量,它工作正常,但它不是問題.. –

+0

我試過馬丁提供的鏈接,實施這些新的變化,轉移成功,但是,Excel的文件格式似乎有改變。我無法打開它。 –

回答

0

爲了安全獲取昨天的日期,你不能簡單地從今天的日期中扣除一個,如果這將在Compo已經指出的那個月換掉。

@echo off 
For /f %%Y in (
    'powershell -NoP -C "(get-date).AddDays(-1).ToString(\"yyyyMMdd\")"' 
) Do Set Yesterday=%%Y 
Set "Folder=c:\batchreports\DAYENDREPORTS\PREDAYEND\%yesterday%" 
Pushd "%folder%"||(Echo Can't locate %folder% &Pause&Exit /B 1) 

> ftpscript.ftp (
echo host 192.168.18.188 
echo username 
echo password 
echo cd autoemail 
echo send DEALS_ENTERED_TODAY_ALL_2OM_UP_%Yesterday%.xls 
echo bye 
) 
(ftp -i -s:ftpscript.ftp 2>&1 >ftpscript.log) && (Del ftpscript.*) || (
Echo An error occured, view log: 
more < ftpscript.log 
pause 
Exit /B 1 
) 
Exit /B 0 
+0

@Compo感謝編輯,錯過了。 – LotPings