【问题标题】:Need a bat script to rename a file based on date while doing ftp在执行 ftp 时需要一个 bat 脚本根据日期重命名文件
【发布时间】:2013-01-02 18:54:23
【问题描述】:

这是我的情况。

我有一台服务器每天都以以下格式保存文件: TACO_2012-Dec-30__21-50-00_UTC.csv

我想使用 bat 脚本将此文件重命名为以下格式: TACO_20121230_215000.csv TACO_yyyymmdd_hhmmss.csv

这是我想要做的脚本 1.登录ftp服务器 2.如上重命名文件为新格式

请帮忙...

【问题讨论】:

  • 问题是我是bat脚本新手...所以不知道用哪些函数...主要问题是如何获取要重命名的远程文件的名称因为每个文件都有不同的名称.. 因为我将使用这个批处理脚本在服务器上创建报告后每天自动运行
  • 你甚至没有把你的问题说清楚。文件是否要在远程机器上重命名?如果是这样,您不能使用批处理文件;您需要使用 ftp 命令。如果是在本地机器上,为什么需要批处理命令来重命名(下载后就可以了)?如果有必要使用批处理文件,则对本网站(以及通过 Google 和 Bing 的其他网站)的搜索应该为您提供一个起点。发布零努力自己解决它并不是真正的尝试。这不是“为我编写代码”网站。 :-)

标签: datetime ftp batch-file filenames rename


【解决方案1】:
@echo off
setlocal
for /f "tokens=2-7 delims=_.-" %%A in ('dir /B TACO_*') do (
  setlocal enabledelayedexpansion
  call :getmonth %%B
  ren TACO*_*%%A-%%B-%%C*_*%%D-%%E-%%F_UTC.csv TACO_%%A!mon!%%C_%%D%%E%%F.csv
  endlocal
)


:getmonth
if "%1" equ "Jan" set mon=01
if "%1" equ "Feb" set mon=02
if "%1" equ "Mar" set mon=03
if "%1" equ "Apr" set mon=04
if "%1" equ "May" set mon=05
if "%1" equ "Jun" set mon=06
if "%1" equ "Jul" set mon=07
if "%1" equ "Aug" set mon=08
if "%1" equ "Sep" set mon=09
if "%1" equ "Oct" set mon=10
if "%1" equ "Nov" set mon=11
if "%1" equ "Dec" set mon=12
goto :eof
endlocal

【讨论】:

  • 感谢这个命令,但由于某种原因我无法让它工作....文件名没有改变
  • 已修复。没注意你的文件有两个下划线。
  • 这工作得很好.. 在执行此操作之前如何添加以下内容: FTP open 10.195.2.2 (FTP.server) ftp-user (Username) ftpuser (Password) cd reports/AASummary After这我将运行上面的脚本...请帮助我试图将上面的 FTP 命令放在一个 Bat 文件中,但是当我运行它时它卡在 FTP 上>
  • 目前我没有足够的时间为您提供完善的 FTP 脚本。您可以先查看此页面dostips.com/DtTipsFtpBatchScript.php。因为这是一个不同的问题,最好再问一个在这里提问。BR
猜你喜欢
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2022-10-13
  • 2011-02-01
相关资源
最近更新 更多