Bat to ini转换器

时间:2011-01-22 00:13:09

标签: batch-file for-loop cmd ini

基本上我想要做的是将批处理文件重命名为.ini而不是.bat,并将1 =表示第一行,2 =表示第二行,依此类推等等。

我的批处理文件:

@echo off 

color F0

cls

:strt

echo Drag your file in this window to make a ini from it.

set /p file=File path with " " :

del config.ini

for /F "usebackq tokens=* delims=*" %%j in (%file%) do echo 1=%%j>>config.ini

for /F "usebackq tokens=* delims=* skip=1" %%j in (%file%) do echo 2=%%j>>config.ini

for /F "usebackq tokens=* delims=* skip=2" %%j in (%file%) do echo 3=%%j>>config.ini

exit

当我使用随机文本文件时,我的结果就是这个:

1=lol1

1=lol2

1=lol3

1=lol4

2=lol1

2=lol2

2=lol3

2=lol4

3=lol1

3=lol2

3=lol3

3=lol4

我想要的是这个:

1=lol1 

2=lol2

3=lol3

而原始的.txt是:

lol1

lol2

lol3

lol4

所以它基本上可以工作,但它不会停在它写的第一行的末尾它写入整个文件如何解决这个问题?因为我没有选择。

2 个答案:

答案 0 :(得分:1)

回答发现sry但这对我来说效果更好也许这会对某人有所帮助。 下面的成品。

@echo off
setLocal EnableDelayedExpansion
color F0
@mode con cols=52 lines=10
cls
echo Drag your file in this window to make a ini from it.
echo Remember if you type it in use "path" with the " "
echo.
set /p file=
echo.
for /F "usebackq tokens=* delims=*" %%j in (%file%) do (
set /a n+=1
if !n!==1 (
 echo !n!=%%j>config.ini
) else (
  echo !n!=%%j>>config.ini
)
)
exit

答案 1 :(得分:0)

在这里你去冠军。 如果您需要一些解释,请询问

@echo off
cls
set file=c:/mmm.txt

del config.ini
setlocal EnableDelayedExpansion
for /f "tokens=* delims=*" %%i in (%file%) do (
set variable=%%i
set num=!variable:~3,1!
echo !num!=!variable! >>config.ini
)
endlocal

goto :eof