2017-08-14 13 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 

cmdプロンプトでコードを1行ずつ実行しようとすると正しく動作しますが、batファイル自体を実行すると、ログイン画面が表示されます私のコードはusernameの行で動作しなくなります。コードを実行するにはどうしたらいいですか?バッチファイルでログインできない

+0

'%%datetoday% 'が' 20170801'のとき、 '%batchdate%'はどのように展開されますか?私は '20170731'と賭けません。 – Compo

+0

その行のコードは昨日の日付を変数に格納していますが、正しく動作しますが問題はありません。 –

+0

私はMartinから提供されたリンクを試しました。これらの新しい変更を実装すると、転送は成功しましたが、Excelのファイル形式はかわった。私はそれを開くことはできません。 –

答えて

0

昨日の日付を確実に取得するには、Compoが既に指摘しているように月を交換する場合は、今日の日付から1つを減算することはできません。

@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

関連する問題