2011-01-22 73 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