首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理文件中的动态每日日期

问批处理文件中的动态每日日期
EN

Stack Overflow用户
提问于 2015-01-24 06:26:03
回答 2查看 135关注 0票数 0

在下面的批处理文件中,日期是2015_01_21是一个按ftp上日期命名的文件夹,csv文件的名称中也有日期。

如果我必须每天通过任务调度程序运行这个批处理文件,那么如何自动更改这个批处理文件呢?

代码语言:javascript
复制
ftp.exe -s:%0   
open 111.11.111.11   
Username  
Password

get Samle/2015_01_21/Samle_AB20150121.csv.gz  
get Samle/2015_01_21_ABCD/Samle_AB210115.csv.gz

quit
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-24 09:53:55

有关更多信息,请查看this

代码语言:javascript
复制
@echo off
pushd "%temp%"
makecab /D RptFileName=~.rpt /D InfFileName=~.inf /f nul >nul
for /f "tokens=3-7" %%a in ('find /i "makecab"^<~.rpt') do (
   set "current-date=%%e-%%b-%%c"
   set "current-time=%%d"
   set "weekday=%%a"
)
del ~.*
popd
for /f "tokens=1,2,3 delims=-" %%a in ("%current-date% ") do (
    set year=%%a
    set mon=%%b
    set day=%%c
)



if /i %mon% equ jan set mon=01
if /i %mon% equ feb set mon=02
if /i %mon% equ mar set mon=03
if /i %mon% equ apr set mon=04
if /i %mon% equ may set mon=05
if /i %mon% equ jun set mon=06
if /i %mon% equ jul set mon=07
if /i %mon% equ aug set mon=08
if /i %mon% equ sep set mon=09
if /i %mon% equ oct set mon=10
if /i %mon% equ nov set mon=11
if /i %mon% equ dec set mon=12

echo %mon% %day% %year%

break>temp.ftp
(
  echo open 111.11.111.11 
  echo username
  echo password

  rem ftp.exe supports wildcards so you can change AB to *
  rem echo get Samle/%year%_%mon%_%day%/Samle_*%year%%mon%%day%.csv.gz
  rem echo get Samle/%year%_%mon%_%day%_*/Samle_*%year%%mon%%day%.csv.gz

  rem if AB and ABCD strings are possible to change use the two lines above
  echo get Samle/%year%_%mon%_%day%/Samle_*%year%%mon%%day%.csv.gz
  echo get Samle/%year%_%mon%_%day%_ABCD/Samle_AB%year%%mon%%day%.csv.gz
)>>temp.ftp

ftp -s:temp.ftp
del /q /f temp.ftp
票数 0
EN

Stack Overflow用户

发布于 2015-01-24 12:34:38

要动态处理日期,最好是将临时文件传递给ftp,而不是传递bat本身。尝尝这个。

代码语言:javascript
复制
@echo off
setlocal
for /f "skip=1 tokens=1-3" %%a in ('WMIC PATH win32_localtime get day^,month^,year') do  (
    if "%%a" neq "" (
        set day=%a
        set month=%b
        set year=%c
    )
)

set ftpfile=%tmp%\ftpfile.txt

echo open 111.11.111.11>%ftpfile%
echo Username>>%ftpfile%
echo Password>>%ftpfile%

echo get Samle/%year%_%month%_%day%/Samle_AB%year%%month%%day%.csv.gz>>%ftpfile%
echo get Samle/%year%_%month%_%day%_ABCD/Samle_AB%day%%month%%year:~-2%.csv.gz>>%ftpfile%

echo quit>>%ftpfile%

ftp.exe -s:%ftpfile%
del %ftpfile%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28122960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档