Bat To ini конвертер - PullRequest
       33

Bat To ini конвертер

0 голосов
/ 22 января 2011

В основном я хочу переименовать пакетный файл в .ini вместо .bat и поставить 1 = для первой строки и 2 = перед второй и т. Д. И т. Д.

Моя партияfile:

@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

whileисходный .txt:

lol1

lol2

lol3

lol4

, поэтому он в основном работает, но не останавливается в конце первой строки, пишет, записывает весь файл, как мне решить эту проблему?Потому что у меня нет вариантов.

Ответы [ 2 ]

1 голос
/ 22 января 2011

ответ найден, но это работает лучше для меня, может быть, это поможет кому-то еще.Готовая продукция ниже.

@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
0 голосов
/ 22 января 2011

Вот, пожалуйста, чемпион.Если вам нужно какое-то объяснение, просто спросите

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