批处理脚本 - 重命名复制的文件

时间:2015-10-08 23:51:36

标签: batch-file cmd

以下批处理脚本非常适合复制目录中的最新文件,但如何相应地重命名复制的文件?

pushd D:\sales\
for /f "tokens=*" %%a in ('dir /b ') do set newest=%%a
copy "%newest%" D:\test\ 
popd

2 个答案:

答案 0 :(得分:1)

目标参数可以是放入新文件的目录,但您也可以向其添加新文件名。因此,您可以执行D:\test\

之类的操作而不是D:\test\filename.ext

答案 1 :(得分:1)

此改进的代码段将您的文件重命名为new_name.ext

pushd D:\sales\
for /f "tokens=*" %%a in ('dir /b /o:-d /a:-d') do (
    set "newest=%%~a"
    goto :SKIP
)
:SKIP
copy "%newest%" "D:\test\new_name.ext"
popd

改进:

  • 添加新文件名,当然......
  • dir定义排序顺序以获取最新文件 ,并过滤掉目录以仅获取文件; goto内的for打破了循环,因此只有一次迭代;这可能会在大量文件的情况下提高性能;
  • 将修饰符~插入for变量%%a以避免任何周围的引号;稍后将在copy命令行中的目的地说明;