Показать полную графическую версию : С помощью bat-ника перенести нужное количество строк в одну в текстовом файле
Здравствуйте, помогите создать .bat в текстовом документе для переноса первых 10 строчек в одну, далее следующие 10 и так далее.
Необходимо чтобы совмещенные строчки разделялись не пробелами а табуляцией (для дальнейшей работы в .xls)
Пример текста:
01050
Фамилия И.О. *
Улица (Ж), д. 8, кв. 4
0.5235
-100.00
Абонплата не снята
Мировой
28/11/10 09:09:08
1243
Фамилия И.О. *
Улица (Ж), д. 9, кв. 5
...
@echo off
setlocal
<"example.txt">"new.txt" (
for /f "delims=" %%i in ('more') do (
set/a n+=1
for /f %%j in ('set/a n') do (
if %%j gtr 8 (
echo.
set n=1
)
<nul set/p="%%i "
)
)
)
endlocal
exit /b
Как-то так:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=%~1
set sDestFile=Result.txt
if defined sSourceFile (
if exist "%sSourceFile%" (
for /f "usebackq delims=" %%i in (
`type "%sSourceFile%" ^| find.exe /c /v ""`
) do set /a iLinesCount = %%~i
set /a iMod = !iLinesCount! %% 10
if !iMod! equ 0 (
set /a iGroups = !iLinesCount! / 10
<"%sSourceFile%" >"%sDestFile%" (
for /l %%i in (1, 1, !iGroups!) do (
for /l %%i in (1, 1, 9) do (
set sVar=
set /p sVar=
<nul set /p sTempVar=!sVar!
)
set sVar=
set /p sVar=
<nul set /p sTempVar=!sVar!
echo.
)
)
) else (
echo Lines count [!iLinesCount!] in [%sSourceFile%] not a multiple of 10."
exit /b 3
)
) else (
echo Can't find source file [%sSourceFile%].
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source file^>
exit /b 1
)
endlocal
exit /b 0
Имя исходного текстового файла задаётся параметром пакетного файла (также можно просто перетянуть исходный файл на пакетный файл в Проводнике).
Georgio, в конце строк лишний табулятор вкрался ;).
Спасибо! Оба батника работают. А нельзя сделать так, чтоб и пустые строки при переносе были отделены табуляцией (т.к. в некоторых ситуациях они бывают заполнены и при переносе в таблицу данные смещаются), а в данном случае они теряются.
пустые строки при переносе были отделены табуляцией (т.к. в некоторых ситуациях они бывают заполнены »
Переведите на русский — как пустые строки могут быть «заполнены» (причём — в «некоторых ситуациях»). С пустой строки получается пустота:
http://i.imgur.com/p58PZX7.png
Попробую пояснить в картинках.
есть такой текстовый документ с данными
01050
Фамилия И.О. *
Улица (Ж), д. 8, кв. 4
0.5235
-100.00
Абонплата не снята
Мировой
28/11/10 09:09:08
1243
Фамилия И.О. *
Улица (Ж), д. 9, кв. 5
35.0000
-3000.00
Абонплата не снята
Пятьдесят
20/06/14 09:05:38
a-spivak
Фамилия И.О.
Улица (Ж), д. 6, кв. 10
85.7785
Пятьдесят
Пятьдесят
01/06/15 05:00:34
http://imgur.com/j7PBIXJ.jpg
после применения батников получается не 10 столбцов, а по количеству заполненных строк
http://imgur.com/a2icnAG.jpg
а необходимо чтоб было так
http://i.imgur.com/lpeoJXd.jpg
т.е. другими словами: 10 строчек должны стать 10 столбцами, следующие 10 ... и т.д.
Rz78, поскольку конфигурацию в профиле Вы не заполнили — спрашиваю: у Вас Windows 7 или выше?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.