2016-02-27 51 views
0

我正在使用基本命令行程序將.xml文件轉換爲.csv。我把它用覆蓋前增量重命名批輸出

FOR %I in (..\xmlinput\*.xml) DO XmlToCsv.Console.exe -xml %I -dir ..\csvoutput\ 

這工作得很好,但所有輸出文件被命名爲r.csv執行上的所有.xml文件的行動在目錄中,所以每次它循環以前r.csv被覆蓋。如何在下一次循環運行之前遞增地重命名輸出(r1.csv,r2.csv等)並覆蓋之前的輸出? (XmlToCsv.Console.exe沒有使用其他參數)。非常感謝。

回答

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一個命令。您可能還需要更改重命名命令的路徑。

+0

如果你想:'ren「.. \ csvoutput \ r.csv」「.. \ csvoutput \ %%〜nI.csv」'你也可以保留文件名。 @Dennis:'ren'不支持目的地的路徑:'ren'path \ oldname.ext「」newname.ext「' – Stephan

+0

@Stephan你是對的,忘記了這一點。 –

+0

這是完美的,謝謝。通過將\ xmlinput \和\ csvoutput \設置爲相同的文件夾,%%〜nI.csv選項運行良好。謝謝。 – user1608180