2011-01-22 14 views
-1

基本的には、バッチファイルの名前を.batではなく.iniに変更し、1 =最初の行、2 = 2番目のようにするなどです。Bat To 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 
関連する問題