【问题标题】:Batch file that copies a dynamic file name to a different directory with the date将动态文件名复制到具有日期的不同目录的批处理文件
【发布时间】:2016-04-28 03:56:07
【问题描述】:

好的,我们正在尝试将三个具有不同迭代次数的文件复制到另一个文件夹,并在文件名后添加日期。这是我们的代码:

@ECHO off
XCOPY /y /c z:\accounting\daily\test\fdxe*.csv

rem get date, make it file name friendly
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%j%%k%%l

set csv=fdxe*%d%.csv
ren fdxe*.csv %csv%
move fdxe*.csv \\newserver\Export\Fedex\test\
@ECHO on

现在它正在将文件复制到正确的文件夹,它正在添加日期,但它一直在 .csv 扩展名之后添加日期。所以我们最终得到:fdxe1.csv01212016

我们做错了什么?

【问题讨论】:

  • 为什么不使用 FOR 命令迭代所有文件并使用命令修饰符将基本文件名与扩展名分开。
  • 我该怎么做?批处理文件是我很少有经验的。

标签: csv batch-file file-rename file-copying


【解决方案1】:

我们通过移动文件然后重命名解决了这个问题。我还使用? 而不是* 更改了重命名部分,因为我希望它保留在原始文件名中的字符。现在代码如下:

@ECHO off
XCOPY /y /c z:\accounting\daily\test\fdxe*.csv

move fdxe*.csv \\devserver\Elliott_Export\Fedex\test\

rem get date, make it file name friendly
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%j%%k%%l

rename \\newserver\Export\Fedex\test\?.??? ?????_%d%.???
@Echo on

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多