2011-01-22 270 views
-1

基本上我想要做的是将批处理文件重命名为.ini而不是.bat,并将1 =放在第一行,将2 =放在第二行之前,等等。蝙蝠到ini转换器

我的批处理文件:

@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 

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

回答

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 
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