覆盖前增量重命名批处理输出
Incremental rename batch output before overwritten
我正在使用基本命令行程序将 .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 没有额外的参数可以使用)。非常感谢。
在批处理文件中,你可以试试这个:
@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
。您可能还需要更改重命名命令的路径。
我正在使用基本命令行程序将 .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 没有额外的参数可以使用)。非常感谢。
在批处理文件中,你可以试试这个:
@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
。您可能还需要更改重命名命令的路径。