在覆盖之前增量重命名批量输出

时间:2016-02-27 12:41:26

标签: batch-file cmd file-rename batch-rename

我正在使用基本命令行程序将.xml文件转换为.csv。我让它使用

对目录中的所有.xml文件执行操作
FOR %I in (..\xmlinput\*.xml) DO XmlToCsv.Console.exe -xml %I -dir ..\csvoutput\ 

这样可以正常工作,但是所有输出文件都被命名为r.csv,所以每次循环时都会覆盖以前的r.csv。如何在下一个循环运行之前逐步重命名输出(r1.csv,r2.csv等)并覆盖以前的输出? (XmlToCsv.Console.exe没有其他参数可供使用)。非常感谢。

1 个答案:

答案 0 :(得分:1)

在批处理文件中,您可以尝试:

@echo off
setlocal EnableDelayedExpansion
set "counter=1"
FOR %%I in (..\xmlinput\*.xml) DO (
XmlToCsv.Console.exe -xml %%I -dir ..\csvoutput\
ren "..\csvoutput\r.csv" "r!counter!.csv"
set /a "counter+=1"
)

请注意,由于这是批处理文件而不是单个命令,因此您需要使用%%I而不是%I。您可能还需要更改重命名命令的路径。

相关问题