iT邦幫忙

0

有人可以幫忙寫批次檔嗎?需求:從來源資料夾篩出最新的檔案.txt=>改成固定檔名abc.txt=>FTP上傳=>結束

  • 分享至 

  • xImage
REM 取得今天的年、月、日 (自動補零)
SET TodayYear=%date:~2,2%
SET TodayMonthP0=%date:~5,2%
SET TodayDayP0=%date:~8,2%
SET Hour=%NowTime:~0,2%
SET Minute=%NowTime:~3,2%

REM 取得今天的年、月、日 (純數字)
REM 2010/08/03 更新:以下是為了修正 Batch 遇到 08, 09 會視為八進位的問題
IF %TodayMonthP0:~0,1% == 0 (
SET /A TodayMonth=%TodayMonthP0:~1,1%+0
) ELSE (
SET /A TodayMonth=TodayMonthP0+0
)

IF %TodayMonthP0:~0,1% == 0 (
SET /A TodayDay=%TodayDayP0:~1,1%+0
) ELSE (
SET /A TodayDay=TodayDayP0+0
)

rem echo 今天日期 %TodayYear%/%TodayYear%/%TodayDayP0%
SET DownloadMonth=%TodayYear%%TodayMonthP0%%TodayDayP0%

REM 底下為 FTP 下載,匯入函數產生 GET.txt
del GET.txt /q
echo open 192.168.10.11>>GET.txt
echo 帳號>>GET.txt
echo 密碼>>GET.txt
echo prompt>>GET.txt
echo lcd D:\wjsttest>>GET.txt
echo cd /repout>>GET.txt
echo mput 2021*.txt>>GET.txt
echo bye>>GET.txt
ftp -s:GET.txt>>D:\wjsttest\test.log
exit

需將Local端的D:\wjsttest底下(如下圖眾多.TXT)過濾出最新日期的.txt檔,再改成固定檔名ccop018.txt,然後FTP上傳到192.168.10.11(Linux)的/repout下,再用windows排程去跑。*想用上面程式碼去改,或是大大有更好的批次檔寫法也可以。感恩~

https://ithelp.ithome.com.tw/upload/images/20211118/20144037Jp7AsrNDmr.png

Hans5300609 iT邦研究生 4 級 ‧ 2021-11-18 05:43:20 檢舉
1.所以你的問題是?
2.請善用程式碼區塊
3.不要把一大串問題當標題
看你截圖我會以為你是中國寫批次來亂版的
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
海綿寶寶
iT邦大神 1 級 ‧ 2021-11-18 09:09:00
最佳解答

https://ithelp.ithome.com.tw/upload/images/20211118/200017877fHTVuhNMg.png

在開始之前,只要做一次
del wjstext\*.txt
以下是排程批次檔內容

1.把 *.txt rename 成 ccop018.txt
copy *.txt ccop018.txt

2.上傳 ccop018.txt 
REM 底下為 FTP 下載,匯入函數產生 GET.cmd
del GET.cmd /q
echo open 192.168.10.11>>GET.cmd
echo 帳號>>GET.cmd
echo 密碼>>GET.cmd
echo prompt>>GET.cmd
echo lcd D:\wjsttest>>GET.cmd
echo cd /repout>>GET.cmd
echo mput ccop018.txt>>GET.cmd
echo bye>>GET.cmd
ftp -s:GET.cmd>>D:\wjsttest\test.log
exit
或是
只執行 ftp -s:GET.cmd>>D:\wjsttest\test.log

3.刪除 ccop018.txt
del ccop018.txt

海大神:請問上面的bat。如果ftp連線失敗需呼叫一個.vbs寄MAIL通知。要怎麼編寫。感恩~感謝~

我要發表回答

立即登入回答